js动态加载复选框checkbox(XML串)

15410年前 (2015-09-22)javaScript3836

首先,使用JS动态产生Checkbox可以采用如下类似的语句:

代码如下:
var checkBox=document.createElement("input");
checkBox.setAttribute("type","checkbox");
checkBox.setAttribute("id",'123456');

但是,这样产生的checkbox是不带尾后的文字的,如果需要添加,那么需要使用
document.createTextNode('XXX')
方法来产生一个文本节点,放在checkbox后面。

 

如下代码,程序产生了一个checkbox和一个文本节点,并将它们放到一个li对象中,再将li对象添加到ul对象中:

代码如下:

   var executerDiv=$("executerDiv");
   executerDiv.innerHTML="";
   var ul=document.createElement("ul");

for(var i=0;i<tableDatas.length;i++){
       var arr=tableDatas[i];

       // 加入复选框
       var checkBox=document.createElement("input");
       checkBox.setAttribute("type","checkbox");
       checkBox.setAttribute("id",arr[0]);
       checkBox.setAttribute("name", arr[1]);

       var li=document.createElement("li");
       li.appendChild(checkBox);        
       li.appendChild(document.createTextNode(arr[1]));

       ul.appendChild(li);        
   }    

   executerDiv.appendChild(ul);


以上代码中,将checkbox放到li和ul中,这样能起到良好的排列效果,UL和li设置的CSS样式如下:

代码如下:

   #executerDiv{
   }

   #executerDiv ul{
       margin:0px;
       padding:0px;
       list-style-type:none;
       vertical-align:middle  ;
   }

   #executerDiv li{
       float:left;
       display:block;

       width:100px;  
       height:20px;
       line-height:20px;

       font-size:14px;  
       font-weight:bold;          
       color:#666666;

       text-decoration:none;
       text-align:left;  

       background:#ffffff;
   }

实例js方法:

    function drawCheckBox(oSelect, oNode, sValue, sText) {
 alert(oSelect);
 if (oSelect == null) {
  return -1;
 }
 if (oNode == null) {
  return -2;
 }
 if (sValue == null) {
  return -3;
 }
 if (sText == null) {
  return -4;
 }  
   //清空原有选项  
  
 oSelect.innerHTML="";
   //根据xml节点列表的内容构造下拉框选项  
 var childs = oNode.childNodes;
 var obj;
 var idx = -1;
    var ul=document.createElement("ul");
 for (var i = 0; i < childs.length; i++) {
  var child = childs.item(i);
  var value = child.selectSingleNode(sValue).text;
  var text = child.selectSingleNode(sText).text;
  alert('value=='+value);
  alert('text=='+text);
  obj = document.createElement("input");
  //obj.type="checkbox";  
  obj.setAttribute("type","checkbox");  
  obj.setAttribute("id",'box'+i);
  obj.setAttribute("name",'box');
  obj.value = value;
  obj.text = text;
  obj.title = text;
  oSelect.appendChild(obj);
  var li=document.createElement("li");
        li.appendChild(obj);       
        li.appendChild(document.createTextNode(text));
        ul.appendChild(li);  
 }
  oSelect.appendChild(ul);
 return 1;
}

 

HTML部分:

<tr>
    <td align="right" class="sec2">
     对应取票方式  </td>
    <td id="qpfs">
    </td>
   </tr>

js赋值部分:

else if(method =="getQpfs") {
             alert(http_text);
             var oNodeNsr = xmlDoc.getElementsByTagName("ROW");
        if(oNodeNsr!=null){
        //获得变更项目的数据岛
                      DSO_SJSWJG.removeChild(DSO_SJSWJG.documentElement);
                      DSO_SJSWJG.appendChild(xmlDoc.selectSingleNode("//ROWSET"));
                      drawCheckBox(document.getElementById('qpfs'), DSO_SJSWJG.selectSingleNode("/ROWSET"), "DM", "MC");
                    }
       }

本文原创,转载必追究版权。

相关文章

base64加密java算法

base64加密java算法

 一、Base64算法概述Base64算法最早应用于解决电子邮件传输的问题。它是一种基于64个字符的编码算法,根据RFC 2045的定义:“Base64内容传输编码是一种以任意8位字节序列组...

get/post方式调用http接口

get/post方式调用http接口

 1. 项目环境如下:myeclipse8.5 、tomcat5.0/weblogic、xp、JDK:开发1.5,编译1.4为了方便,在原来的web项目UpDown中新建了一个httpcal...

坑爹的ShowModalDialog 后台传值解决方案

 今天遇到需要ShowModalDialog打开页面,通过acceptanceIds 参数值后台过滤出相应结果前台  var url = "loadAccept...

如何查询端口占用情况 并禁止占用

如何查询端口占用情况 并禁止占用

开始---->运行---->cmd,或者是window+R组合键,调出命令窗口输入命令:netstat -ano可看到是:pid为 2160 的程序占用了80端口;启动任务管理器:ctrl...

MySQL、Oracle数据库字段分别设置默认系统时间

MySQL设置方法:1、将字段类型设为  TIMESTAMP 2、将默认值设为  CURRENT_TIMESTAMPMySQL 脚本实现用例--添加CreateTime 设置默认时...

Jfinal+Jquery uploadify实现多文件上传实例

Jfinal+Jquery uploadify实现多文件上传实例

包文件外部jar包jfinal-2.0-bin-with-src.jar(JFinal核心包)  fastjson-1.2.7.jar(用于json数据的处理)  cos-26De...

评论列表

点我收录您
10年前 (2015-10-15)

这个用途很广泛

发表评论

访客

◎欢迎参与讨论,请在这里发表您的看法和观点。