JS实际使用总结

<1>jquery循环遍历

$('input[type=checkbox][name=check_subjectid]:checked').each(function(i,o){
if(o.getAttribute("seriestype") == 3)
{
    $.umapMessager.alert('<bean:message key="IPTV.SLCS.TITLE"/>', '<bean:message key="contentmgr.content.series.dele_error1"/>', 'error' , function(r){});
      retflag = true;
}
});

 

<2>表单序列化

/**
 * 获得form表单元素
 * @param formObj
 * @returns
 */
function changeAjaxFormData(formObj){
var data=formObj.serialize();
data= decodeURIComponent(data,true);// 防止中文乱码
var json=formToJson(data);// 转化为json
return JSON.parse(json);
}

function formToJson(data) {
   data=data.replace(/&/g,"\",\"").replace(/=/g,"\":\"").replace(/\+/g," ").replace(/[\r\n]/g,"<br>");
   data="{\""+data+"\"}";
   return data;
}


var formJson = changeAjaxFormData($("#actionForm"));
ajaxTemplate("/admin/product/addProduct","json", true, formJson, function(data){

<3>js知识点

 

//隐藏显现  HTML设置默认值:style="display:none"//隐藏
$("#aid2").show(); //显现
$("#aid1").hide(); //隐藏
$("#servicenameA").attr("value",data.servicename); //设置value值
$("#jiben_smname").val(data[0].smname); //给select设置默认值 data是ajax返回值

//直接请求路径
function _go(pageNum){
    var servicename = $("#servicename").val();
    var pageNum = pageNum;
    location='/saltportal/serviceInfo?servicename='+servicename+'&pageNum='+pageNum;    
}

//返回主页面并刷新
window.location.href="";

//不应许更改
disabled

history.go(-1) :后退+刷新;
history.go(1) :前进
history.back() :后退 ; 
history.back(-1) :返回上一页,原页表表单中的内容会保留
history.back(0) :刷新;
history.back(1) : 前进 

th:href="@{${model中的name值}}"
th:href="@{/demand(username=${username})}"
js:  href="'+obj.icenterurl+'"

将input表单在没有提交按钮下,回车绑定事件,由ajax提交
$(function(){
方法一
    $('#addlabel').bind('keypress',function(event){
          if(event.keyCode == "13")
          {
             var label = $("#addlabel").val();
            var requireid = $("#label_requireid").val();
            alert('你输入的内容为:' + label+','+requireid);
          }
    });

//方法二如下
   $(document).keydown(function(e) {
         if (e.keyCode == 13) {
            //dologin();
         }
  });

});

(12)弹出新窗口
function icenterpage(icenterurl){
    window.open(icenterurl,'','height=600,width=1000,top=140,left=300');
    //$("#icenter_url").attr("href",icenterurl);
    //$('#icenter_url').html('<span></span>').children().trigger('click');
}


//console.log(servicecode);
//console.log(parentcode);
//parent.frames["treeDemo"].refreshNode(parentcode);
window.location.href="";

经典的js操作:
function serciceList(requireid){
    $.ajax({
        type: 'GET',
        async: false,
           url: '/saltportal/demand/getSerciceList?requireid='+requireid,
            dataType: "json",
        //data: {requireid : requireid},
            success: function(data){
            $("#sercice_requireid").attr("value",requireid);
            $('#sercice_list').empty();
            html="";
            html+='<table class="table table-striped"><thead><tr><th>归属服务编号</th><th>归属服务名称</            th><th>服务编号</th><th>服务名称</th><th>icenterurl</th><th>操作</th></tr></thead>';
            for (var i=0;i<data.length;i++ ){
                html+='<tr id="rowOne">';
                html+='<td>'+data[i].parentcode+'</td>';
                html+='<td>'+data[i].parentname+'</td>';
                html+='<td>'+data[i].servicecode+'</td>';
                html+='<td>'+data[i].servicename+'</td>';
                html+='<td><a style="width:200px; cursor:pointer;" οnclick="icenterpage(\''+data                [i].icenterurl+'\');">'+data[i].icenterurl+'</a></td>';
                html+='<td><button  data-target="#step1" οnclick="delSerciceByid(\''+requireid+'\',            \''+data[i].servicecode+'\');"><a>删除</a></button><br>';
                html+='</tr>';
            }
            html+='</tbody>';
            html+='</table>';
            html+='<div class="modal-footer">';
            html+='<button type="button"  class="btn btn-primary" οnclick="queSercice                (\''+requireid+'\')">增加</button></div>';
            $("#sercice_list").append(html);
             },error:function(err){
                 alert("服务树初始化数据加载失败!");
             }
        });
}

选项框条件补充
//页面初始化赋值
function loadRolename3Options(Rolename3){
    var newRolename3=Rolename3.substring(1,Rolename3.length-1);
    var arr=newRolename3.split(",");
    $("#qaname").append('<option value="">--请选择--</option>');
    for(var i=0;i<arr.length;i++){
        $("#qaname").append('<option value="'+trim(arr[i])+'">'+arr[i]+'</option>');
        $("#jiben_qaname").append('<option value="'+trim(arr[i])+'">'+arr[i]+'</option>');
    }
}

//去除字符串前后空格
function trim(str){ 
    return str.replace(/(^\s*)|(\s*$)/g, ""); 
}

新页面弹出框
//点击icenterpage,弹出新页面窗口
function icenterpage(icenterurl){
    window.open(icenterurl,'','height=600,width=1000,top=140,left=300');
}

<4>html

把div变成input输入框<div></div>

contenteditable="plaintext-only"
或者contenteditable="true"

*<span></span>标签也可以用

跳出新窗口,用于href=""访问
<1>iframe  缺点:https或者http请求的连接地址一些会受返回的信息不同而不通过
<iframe id="icenterurlPage" name="icenterurlPage" style="width:100%; height:500px; overflow:auto;"     frameborder="0" src="" marginheight="0" marginwidth="0"></iframe>
<2>window.open();   //推荐使用

window.open ('page.html', 'newwindow', 'height=100, width=400, top=0, left=0, toolbar=no, menubar=no,     scrollbars=no, resizable=no,location=n o, status=no')

 <SCRIPT LANGUAGE="javascript"> js脚本开始; 
  window.open 弹出新窗口的命令; 
  'page.html' 弹出窗口的文件名; 
  'newwindow' 弹出窗口的名字(不是文件名),非必须,可用空''代替; 
  height=100 窗口高度; 
  width=400 窗口宽度; 
  top=0 窗口距离屏幕上方的象素值; 
  left=0 窗口距离屏幕左侧的象素值; 
  toolbar=no 是否显示工具栏,yes为显示; 
  menubar,scrollbars 表示菜单栏和滚动栏。 
  resizable=no 是否允许改变窗口大小,yes为允许; 
  location=no 是否显示地址栏,yes为允许; 
  status=no 是否显示状态栏内的信息(通常是文件已经打开),yes为允许; 
  </SCRIPT> js脚本结束

style="display: ${iscbt ? 'none' : 'block'}"   //通过获取iscbt的参数(true/false)来控制隐藏和显现

<5>服务树

zTree
zTree 是一个依靠 jQuery 实现的多功能 “树插件”。优异的性能、灵活的配置、多种功能的组合是 zTree 最大优点。

导入jar包  ztree包
<link rel="stylesheet" th:href="@{ztree/css/zTreeStyle.css}">
<script type="text/javascript" th:src="@{ztree/jquery.ztree.all-3.5.min.js}"></script>
<script type="text/javascript" th:src="@{ztree/jquery.ztree.core-3.2.js}"></script>
<script type="text/javascript" th:src="@{ztree/jquery.ztree.core-3.5.min.js}"></script>
<script type="text/javascript" th:src="@{ztree/jquery.ztree.excheck-3.2.js}"></script>
<script type="text/javascript" th:src="@{ztree/jquery.ztree.excheck-3.5.min.js}"></script>

HTML
<ul id="treeDemo" class="ztree"></ul>

<iframe id="mainContent" name="mainContent1" src="" style="width:100%; height:768px; background-color: #fff; overflow:auto;  float:right;" ></iframe>

<script type="text/javascript">
var setting = {
        data: {
            simpleData: {
                enable: true
            }
        }
    };
     

//请求controller获取数据
$(document).ready(function () {
    jQuery.ajax({
        url: "/saltportal/treeList",
        type: "POST",
        dataType: "json",
        contentType: "application/json; charset=utf-8",
        success: function (data) {
            $.fn.zTree.init($("#treeDemo"), setting, data);
        }
    });
});

//点击节点的onclick事件
function getInfoId(id) {
   $("#mainContent").attr("src","/saltportal/ApplicationPageList?servicecode="+id).children().trigger('click');
}

 //异步刷新tree
var curMenu = null, 
zTree_Menu = null;
var zNodes = [];
function refreshNode(id){
    //获取当前节点
    var treeObj = $.fn.zTree.getZTreeObj("treeDemo");
    var nodes = treeObj.getSelectedNodes();
    var selectId = nodes[0].id;
    //重置树
    $.ajax({
        url: "/saltportal/treeList",
        type: "POST",
        dataType: "json",
        contentType: "application/json; charset=utf-8",
        success: function (data) {
            $.fn.zTree.init($("#treeDemo"), setting, data);
            zTree_Menu = $.fn.zTree.getZTreeObj("treeDemo");
            curMenu = zTree_Menu.getNodes()[0].children[0];
            zTree_Menu.selectNode(curMenu);
        }
    });
    treeObj.selectNode(selectId, true);
}

</script>


<7>表单数据转换成集合

例如:  注释:$("").val();智能获取input框的参数值
前提:<input type="hidden" id="Ass_versionid" name="versionid"/>
function queRequire(id){
    
    var JSONObj=new Object();//为JSON对象  
    var list=[];//生成集合(保存多个商品对象)
    var versionid=null;//保存商品对象  
    //循环将多个商品对象保存到集合中
    for (var i = 0; i<id; i++) {  
        versionid=new Object();//生成一个商品对象
        versionid.versionid=$('#vers'+i).val();//moduleworkload
        list.push(versionid);//保存商品对象到集合中  
    }
    JSONObj.jsonStr=JSON.stringify(list);//将集合转成JSON("jsonStr"用于后台定位)
    $.ajax({
        type: 'GET',
        async: false,
        data: JSONObj,
        url: '/saltportal/version/getVersionAndRequireLists',
        dataType: "json",
        success: function(data){
            var data = data;
            var b = data.length;
            $("#Details_list").empty();
            html='';
            html+='<table class="table table-striped" style="text-align:left;"><thead><tr><th>版本名称</th><th>需求名称</th></tr></thead>';
            html+='<tbody>';
            for (var i = 0; i < data.length; i++) {
                html+='<td >'+data[i].versionname+'</td>';
                html+='<td >'+data[i].requirename+'</td>';
                html+='</tr>';
            }
            html+='</tbody></table>';
            if(b == 0){
                html+='<div style="color:#dd4b39; text-align:center; width:100%;"><span >暂没有版本关联的需求!!!</span></div>';
            }
            $("#Details_list").append(html);
        },error:function(){
            alert("数据加载失败!");
            Details_version(versionid);
        }
    });
}


后端接收
//关联详情>>单集版本>>(多版本)关联需求查询加载数据
      @RequestMapping(value="/version/getVersionAndRequireLists" ,method = RequestMethod.GET)
      @ResponseBody
      public List<DemandListBean> getVersionAndRequireLists(HttpServletRequest request){
          List<DemandListBean> list = new ArrayList<DemandListBean>();
          try {
              String jsonStr = request.getParameter("jsonStr");
              System.out.println("我进来了!"+jsonStr);
              List<DemandListBean> versionids = JSON.parseArray(jsonStr,DemandListBean.class);
              List<Integer> list2 = new ArrayList<Integer>();
              for (DemandListBean i: versionids) {
                  list2.add(i.getVersionid());
              }
              list = versionService.getVersionAndRequireLists(list2);
          } catch (Exception e) {
              e.printStackTrace();
          }
          return list;
      }


知识扩展:
来源:https://blog.csdn.net/qq_32786873/article/details/80280869

《传入数组》
$(document).on('click', '#sendArr', function () {
    var ids = [];
    for(var i=0; i<10; i++){
        ids.push(i);
    }
    $.ajax({
        type: 'post',
        dataType: 'json',
        url: '/test/test/sendArr',
        data: {ids:ids},
        traditional: true,
        success: function (result) {
            console.log(result)
        },
        error: function(data){
          alert("操作异常");
        }
    });
});


后端:

@PostMapping("/sendArr")
public Map<String,Object> sendArr(String[] ids) {
    Map<String,Object> map = new HashMap<String,Object>();
    map.put("ids", ids);
    return map;

《2传入List集合》

$("#sendList").click(function(){
    var ids = [];
    for(var i=0; i<10; i++){
        ids[i] = i;
    }
    $.ajax({
        type: 'post',
        dataType: 'json',
        url: '/test/test/sendList',
        data: JSON.stringify(ids),
        contentType:"application/json",
        success: function (result) {
            console.log(result)
        },
        error: function(data){
          alert("操作异常");
        }
    });
});

后端:
@PostMapping("/sendList")
public Map<String,Object> sendList(@RequestBody List<String> ids) {
    Map<String,Object> map = new HashMap<String,Object>();
    map.put("ids", ids);
    return map;
}

<8>bootstrap-select简单使用

网址:https://www.cnblogs.com/nianyifenzhizuo/p/8119462.html

单选框可以输入 引入文件
<link href="/bootstrap-select-1.12.4/dist/css/bootstrap-select.min.css" rel="stylesheet" />
<script src="/bootstrap-select-1.12.4/dist/js/bootstrap-select.min.js"></script>

注意名称class="selectpicker"


自己写的
<label>局点</label>
<div class="form-control" style="padding:0px; border: 0px solid #ccc;">
    <div style="width:16%; float:left;">
        <select name="postname" class="form-control" id="demand_postname" onChange="Change_postname();">
           </select>
    </div>
    <div style="width:84%; float:left;">
         <input type="text" placeholder="--请输入--" class="form-control" name="postname11" id="postname11" th:value="${postname}" >
    </div>
</div>


js


//局点选择后,input框显示数据
function Change_postname(){
    var postname = $("#demand_postname").val();
    $("#postname11").attr("value",postname);
}

(5)在框架下,重置一下选项框方式

    普通select下
    document.getElementById("selectid").options.length = 0; 
    //对input框重置
    $("#iRequireChanger_versionname").val("");

    *bootstrap-select下拉框对select选项框重置
        document.getElementById("version_postname").options.selectedIndex = 0; //回到初始状态
            $("#version_postname").selectpicker('refresh');

设置初始化值:$("#jz_statusname").val(statusname).trigger("change");
        
// 赋值 - 单选
$
    $("#select2-id").val('value').trigger("change");

// 赋值 - 多选
$
    $("#select2-id").val(['value1','value2']).trigger("change");

<9>雷达图-------------------------------------------------------------------------

雷达图,画图 学习网站:https://www.echartsjs.com/zh/tutorial.html#5%20%E5%88%86%E9%92%9F%E4%B8%8A%E6%89%8B%20ECharts

前提:
<script type="text/javascript" th:src="@{adminlte/plugins/jQuery/jquery-1.11.0.min.js}"></script>
<script type="text/javascript" th:src="@{adminlte/plugins/ECharts/echarts.min.js}"></script>


HTML

<div id="main" style="width: 500px;height:450px;"></div>

script
<script>
    var myChart = echarts.init(document.getElementById('main'));
    option = {
        title: {
            text: '人员画像'
            }, 
        tooltip: {},
           legend: {
            data: ['预算分配','实际开销']
            },
        radar: {
            // shape: 'circle',
            name: {
                textStyle: {
                    color: '#fff',
                    backgroundColor: '#999',
                    borderRadius: 3,
                    padding: [3, 5]
                       }
                },
            indicator: [
                   { name: '销售', max: 6500},
                   { name: '管理', max: 16000},
                   { name: '信息技术', max: 30000},
                   { name: '客服', max: 38000},
                   { name: '研发', max: 52000},
                   { name: '市场', max: 25000},
                   { name: '人员', max: 5000}
                ]
            },
        series: [{
            name: '预算 vs 开销(Budget vs spending)',
            type: 'radar',
            // areaStyle: {normal: {}},
            data : [
                 {
                value : [4300, 10000, 28000, 35000, 50000, 19000,3500],
                name : '预算分配'
            }, 
             {
                value : [5000, 14000, 28000, 31000, 42000, 21000,4200],
                name : '实际开销'
            }
        ]
    }]
};
//调用方法
myChart.setOption(option);
</script>

ajax加载雷达图


//雷达图
function getMap(moduleid,modulename){
    $.ajax({
        type: 'GET',
        async: false,
        url: '/saltportal/getMapByAbility?moduleid='+moduleid,
        dataType: "json",
        success: function(result){
            var result = result;
            if(result.length>0){
                var myChart = echarts.init(document.getElementById('main'));
                option = {
                    title: {
                        text: ''
                    }, 
                    tooltip: {},
                    legend: {
                        data: []
                    },
                    radar: {
                       // shape: 'circle',
                        name: {
                            textStyle: {
                                color: '#fff',
                                backgroundColor: '#999',
                                borderRadius: 3,
                                padding: [3, 5]
                               }
                        },
                        indicator: []
                    },
                    series: [{
                        name: '预算 ',
                        type: 'radar',
                        // areaStyle: {normal: {}},
                        data : [
                            {
                                name :'',
                                value : []
                               
                            }
                        ]
                    }]
                    
                };
                //调用方法
                if(result){
                    var lable = [];
                    var val = [];
                    var nas = '';
                    nas = modulename;
                    for(var i =0;i<result.length;i++){
                        lable.push({name: result[i].abilityname,max: 5})
                        val.push(result[i].abilitylevel);
                    }
                    option.title.text = nas +'技能信息图';
                    option.legend.data[0] = nas;
                    option.radar.indicator = lable;   
                    option.series[0].data[0].value = val;
                    option.series[0].data[0].name = nas;
                    
                    //隐藏图表数据加载过度提示信息
                    myChart.hideLoading();  
                    myChart.setOption(option);
                }
            }else{
                alert("该模块暂未关联任何技能!");
            }
        },error:function(data){
            alert("技能图数据加载失败!");
        }
    });
}

 

<10>JSON转换

JSON.stringify(obj)将JSON转为字符串。
JSON.parse(string)将字符串转为JSON格式;

 

参考地址:

单选框取值和动态复制网址:https://blog.csdn.net/qq_40015157/article/details/80692296

js及HTML5的基础学习  https://www.runoob.com/jsref/prop-win-opener.html

css样式    http://www.divcss5.com/rumen/r418.shtml

jQuery学习网站:https://www.w3school.com.cn/jquery/index.asp

雷达图,画图 学习网站:https://www.echartsjs.com/zh/tutorial.html#5%20%E5%88%86%E9%92%9F%E4%B8%8A%E6%89%8B%20ECharts

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值