我的 AJAX 应用程序中有这样的东西:
<html>
<head>
<script type="text/javascript">
var counter=4;
function newcheckbox() {
var newrow=document.getElementById('tabl').insertRow(0);
var cell1=newrow.insertCell(0);
var n=document.createElement("input");
n.type="checkbox";
n.name="item";
cell1.appendChild(n);
var cell2=newrow.insertCell(1);
cell2.innerHTML=counter;
counter++;
}
function listlength() {
alert(document.list.item.length);
}
</script>
</head>
<body>
<button onclick="newcheckbox();">new checkbox</button>
<button onclick="listlength();">alert checkbox list length</button>
<form name="list">
<table id="tabl">
<tr>
<td><input type="checkbox" name="item"/></td><td>3</td>
</tr>
<tr>
<td><input type="checkbox" name="item"/></td><td>2</td>
</tr>
<tr>
<td><input type="checkbox" name="item"/></td><td>1</td>
</tr>
</form>
</body>
</html>
如您所见,如果单击新的复选框按钮,则会添加新的复选框。还有另一个按钮可以提醒复选框列表的长度。 在 Firefox 中,您会得到列表的更新长度,但在 IE 6 和 7 中,它表示长度仍为 3。 您如何解决 IE 中的这个问题?
最佳答案
IE 不允许您在创建元素后设置“名称”属性:
var n=document.createElement("<input name='item'>");
但是,如果您这样做,它应该会起作用。
编辑 — 看起来 Firefox(从 FF4 开始,显然从未在标准模式下)不喜欢这样做,所以您必须进行一些浏览器嗅探或功能测试才能知道它是否用于创建具有这样名称的元素。
关于javascript - IE6 和 7 无法检测到 javascript 中动态添加的复选框,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/6720238/