首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > 网站开发 > JavaScript >

进来看看解决办法

2013-10-21 
进来看看divul classbns-list1li classlist-title1aaaa:/liliinput typetext idtxt

进来看看


<div>
    <ul class="bns-list1">
     <li class="list-title1">aaaa:</li>
      <li>
        <input type="text" id="txt3" name="txt3" onfocus="showAndHide('List3','show');" readonly />
       <div class="Menu" id="List3">
          <ul>
            <li><input type="checkbox" value="三sdfd" /><span>三</span></li>
            <li><input type="checkbox" value="a" /><span>b1</span></li>
            <li><input type="checkbox" value="a" /><span>b1</span></li>
            <li><input type="checkbox" value="a" /><span>b</span></li>
            <li><input type="checkbox" value="a" /><span>b213</span></li>
            <li class="list-button"><input type="button" value="确定"  onclick="showAndHide('List3','hide');" /></li>
          </ul>
        </div>
      </li>
      <li class="list-title1">bbbb:</li>
       <li>
        <input type="text" id="txt2" name="txt2" onfocus="showAndHide('List2','show');" readonly />
        <div class="Menu" id="List2">
          <ul>
            <li><input type="checkbox" value="三erwt" /><span>三er店1</span></li>
            <li><input type="checkbox" value="a" /><span>a1</span></li>
            <li><input type="checkbox" value="a" /><span>a1</span></li>
            <li><input type="checkbox" value="a" /><span>a</span></li>


            <li><input type="checkbox" value="a" /><span>a</span></li>
            <li class="list-button"><input type="button" value="确定"  onclick="showAndHide('List2','hide');" /></li>
          </ul>
        </div>
      </li>
    </ul>
</div>
<script>
window.onload = function(){
    var obox = document.getElementById("List2");
    var cboList = obox.getElementsByTagName("input");
    var oText = document.getElementById("txt2");
    document.getElementById("List2").onclick = function(e){
    var src = e?e.target:event.srcElement;
    if(src.tagName == "INPUT"){
    var values = [];
    for(var i=0;i<cboList.length;i++){
    if(cboList[i].checked){
    values.push(cboList[i].nextSibling.innerHTML);
    }
    }
    oText.value = values.join(",");
    }
    }
var obox = document.getElementById("List3");
    var cboList = obox.getElementsByTagName("input");
    var oText = document.getElementById("txt3");
    document.getElementById("List3").onclick = function(e){
    var src = e?e.target:event.srcElement;
    if(src.tagName == "INPUT"){
    var values = [];
    for(var i=0;i<cboList.length;i++){
    if(cboList[i].checked){
    values.push(cboList[i].nextSibling.innerHTML);
    }
    }
    oText.value = values.join(",");
    }
    }

    }
</script>


多少个效果不能用,也不报错,不知道哪问题


[解决办法]
本帖最后由 net_lover 于 2013-07-22 20:56:04 编辑 是因为变量重名了,采用了相同的变量名

你可以采用闭包的方法处理

window.onload = function () {
  for (M = 2; M < 4; M++) {
    document.getElementById("List" + M).M = M;
    document.getElementById("List" + M).onclick = function (e) {
      var obox = document.getElementById("List" + this.M);
      var cboList = obox.getElementsByTagName("input");
      var oText = document.getElementById("txt" + this.M);
      var src = e ? e.target : event.srcElement;
      if (src.tagName == "INPUT") {
        var values = [];
        for (var i = 0; i < cboList.length; i++) {
          if (cboList[i].checked) {
            values.push(cboList[i].nextSibling.innerHTML);
          }
        }
        oText.value = values.join(",");
      }
    }
  }
}

[解决办法]

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
<title>无标题文档</title>
</head>

<body>
<div>
????<ul class="bns-list1">
?????<li class="list-title1">aaaa:</li>
??????<li>
????????<input type="text" id="txt3"?name="txt3"?onfocus="showAndHide('List3','show');" readonly="readonly"/>
???????<div class="Menu" id="List3">
??????????<ul>
????????????<li><input type="checkbox"?value="三sdfd"?/><span>三</span></li>


????????????<li><input type="checkbox"?value="a"?/><span>b1</span></li>
????????????<li><input type="checkbox"?value="a"?/><span>b1</span></li>
????????????<li><input type="checkbox"?value="a"?/><span>b</span></li>
????????????<li><input type="checkbox"?value="a"?/><span>b213</span></li>
????????????<li class="list-button"><input type="button"?value="确定" onclick="showAndHide('List3','hide');"/></li>
??????????</ul>
????????</div>
??????</li>
??????<li class="list-title1">bbbb:</li>
???????<li>
????????<input type="text" id="txt2" name="txt2" onfocus="showAndHide('List2','show');" readonly="readonly"/>
????????<div class="Menu" id="List2">
??????????<ul>
????????????<li><input type="checkbox"?value="三erwt"?/><span>三er店1</span></li>
????????????<li><input type="checkbox"?value="a"?/><span>a1</span></li>
????????????<li><input type="checkbox"?value="a"?/><span>a1</span></li>
????????????<li><input type="checkbox"?value="a"?/><span>a</span></li>
????????????<li><input type="checkbox"?value="a"?/><span>a</span></li>
????????????<li class="list-button"><input type="button"?value="确定" onclick="showAndHide('List2','hide');"?/></li>
??????????</ul>
????????</div>
??????</li>
????</ul>
</div>
<script type="text/javascript">
//window.onload?=?function(){
document.addEventListener('DOMContentLoaded', function() {
var oboxT=document.getElementById("List2");
var cboListT=oboxT.getElementsByTagName("input");
var oTextT=document.getElementById("txt2");
document.getElementById("List2").onclick=function(e){
var src=e?e.target:event.srcElement;
if(src.tagName?==?"INPUT"){
var values?=?[];
for(var?i=0;i<cboListT.length;i++){
if(cboListT[i].checked){
values.push(cboListT[i].nextSibling.innerHTML);
}
}
oTextT.value?=?values.join(",");
}
}
var oboxH=document.getElementById("List3");
var cboListH=oboxH.getElementsByTagName("input");
var oTextH=document.getElementById("txt3");
document.getElementById("List3").onclick?=?function(e){
var src=e?e.target:event.srcElement;
if(src.tagName?==?"INPUT"){
var values?=?[];
for(var?i=0;i<cboListH.length;i++){
if(cboListH[i].checked){
values.push(cboListH[i].nextSibling.innerHTML);


}
}
oTextH.value?=?values.join(",");
}
}
},false);
</script>
</body>
</html>

热点排行