求助!我遇到了一个很诡异的问题,各位路过的大神帮忙看看
代码如下,很简单的几行代码:
<html> <script type="text/javascript"> function processor(){ var echkbox = null; var addhere=document.getElementById("div"); echkbox=document.createElement("input"); echkbox.setAttribute("type","checkbox"); echkbox.setAttribute("id","checkbox"); echkbox.setAttribute("value","蔬菜"); echkbox.onclick = addValue; addhere.appendChild(echkbox); addhere.appendChild(document.createTextNode("蔬菜")); } function addValue(){ var value = ""; var len = document.all.checkbox.length; //显示当前checkbox的个数 window.alert(len) for(var i=0;i<len;i++){ if(document.all.checkbox[i].checked == true){ value = value + document.all.checkbox[i].value +","; } } //给text文本框赋值 document.getElementById("text").value = value; } </script> <body> <center> 种类:<input type="text" id="text" /> <div id="div" > </div> <input type="button" value="增加" onclick="processor();"> </center> </body></html><html> <script type="text/javascript"> function processor(){ var echkbox = null; var addhere=document.getElementById("div"); echkbox=document.createElement("input"); echkbox.setAttribute("type","checkbox"); echkbox.setAttribute("id","checkbox"); echkbox.setAttribute("value","蔬菜"); echkbox.onclick = addValue; addhere.appendChild(echkbox); addhere.appendChild(document.createTextNode("蔬菜")); } function addValue(){ var value = ""; var len = document.getElementById("div").getElementsByTagName("input"); //显示当前checkbox的个数 window.alert(len.length) for(var i=0;i<len.length;i++){ if(len[i].checked == true){ value = value + len[i].value +","; } } //给text文本框赋值 document.getElementById("text").value = value; } </script> <body> <center> 种类:<input type="text" id="text" /> <div id="div" > </div> <input type="button" value="增加" onclick="processor();"> </center> </body></html>
[解决办法]
checkbox name相同的只存在一个时没有length属性,2个以上才会有length属性