我使用ajax以XML格式从服务器获取一些值。格式如下:
<employees><employee><id>Id</id><employeeName>Name</employeeName></employee>.....</employees>
所以要使用
处理此响应 if(employees.childNodes.length>0){
for (loop = 0; loop < employees.childNodes.length; loop++) {
var employee = employees.childNodes[loop];
var ids = employee.getElementsByTagName("id")[0].childNodes[0].nodeValue;
var name = employee.getElementsByTagName("employeeName")[0].childNodes[0].nodeValue;
s=s+'<input name=\"userAction'+type+'\" id=\"userAction'+type+'\" value=\"'+ids+'\" type=\"checkbox"\/>'+name+'<br\/>';
}
document.getElementById('div'+type).innerHTML=s;
}
我能够成功地展示不。用户的。但我的问题是,当我点击提交功能,我想知道没有的长度。的chekboxes。如你所见,我使用特定div中所有检查的相同名称。
var lennt=document.frm["userAction"+i].length;
alert(lennt)
如果有超过1个用户,长度可以,但对于一个用户,它给了我“undefined” 请帮帮我......
答案 0 :(得分:1)
您遇到的问题是,如果没有名为"userAction"+i
的元素,则document.frm["userAction"+i]
为undefined
,如果只有1,则document.frm["userAction"+i]
是对一个DOM节点的引用所以没有length
属性,如果有&gt; 1,document.frm["userAction"+i]
是对DOMNodeList的引用,因此有一个length属性。解决方案:做一些类似的测试:
var checkboxes = document.frm["userAction"+i];
var lennt = 0; // default
if (checkboxes) { // checkboxes is not undefined
// assign value based on whether checkboxes.length is defined
lennt = (checkboxes.length) ? checkboxes.length : 1;
}