Javascript动态生成HTML代码,添加的onclick属性在Chrome下面无效
没有用其它JS库代码我贴个主要的for(vari=0;i<4;i++){userli.appendChild(document.createElement("div"))...
没有用其它JS库
代码我贴个主要的
for (var i = 0; i < 4; i++) {
userli.appendChild(document.createElement("div"));
userli.childNodes[i].onclick = "divToEdit(this)";
}
document.getElementById("UserList").appendChild(userli);
opera下面可以有运行,但Chrome不行,也找不到onclick属性,alert出来竟然是null 展开
代码我贴个主要的
for (var i = 0; i < 4; i++) {
userli.appendChild(document.createElement("div"));
userli.childNodes[i].onclick = "divToEdit(this)";
}
document.getElementById("UserList").appendChild(userli);
opera下面可以有运行,但Chrome不行,也找不到onclick属性,alert出来竟然是null 展开
1个回答
展开全部
childNodes[i]
这句有错误,不同的浏览器对子节点的解析不同,
childNodes的下标的含义在IE和chrome中不同,chrome使用DOM规范,childNodes中会插入空白文本节点。一般可以通过node.getElementsByTagName()来回避这个问题。
解决方案:
chrome在遍历子节点时,在for循环里不妨加上:
if(childNodes[i].nodeName=="#text") {};
或者nodeType == 1。
这句有错误,不同的浏览器对子节点的解析不同,
childNodes的下标的含义在IE和chrome中不同,chrome使用DOM规范,childNodes中会插入空白文本节点。一般可以通过node.getElementsByTagName()来回避这个问题。
解决方案:
chrome在遍历子节点时,在for循环里不妨加上:
if(childNodes[i].nodeName=="#text") {};
或者nodeType == 1。
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询