<html>
<head>
<script>
function add()
{

var a = document.getElementById("1");
a.innerHTML=a.innerHTML+"<DIV name='doc'>name:<INPUT type='text' name='text' id='1'></DIV>";
}
function delete1()
{
var d = document.getElementsByName("doc");
d[d.length-1].outerHTML = "";
}
</script>
</head>
<body>
<div id="1">
<div name='doc'>
name:<input type="text" name="text" id="1">
</div>
<div name='doc'>
name:<input type="text" name="text" id="1">
</div>
</div>
<input type="button" value="add" onclick="add()">
<input type="button" value="delete" onclick="delete1()">
</body>
</html>
delete按钮的delete1()函数中为何我用getElementsByName("doc")无法得到name为div的节点数组?我在delete1()方法中使用alert(d.length)始终结果是0

解决方案 »

  1.   

    不对啊!我用你代码就可以得到值,alert(d.length)可以得到值你用的是IE吧,IE确实是0,如果是火狐就会得
    到,注意在IE下有些节点是没有 name 属性的,就是用document.getElementsByName获取不到的
    只有下面的tag有name属性
    A, APPLET, attribute, BUTTON, EMBED, FORM, IMG, INPUT type=button, INPUT type=checkbox, INPUT type=file, INPUT type=hidden, INPUT type=image, INPUT type=password, INPUT type=radio, INPUT type=reset, INPUT type=submit, INPUT type=text, LINK, MAP, OBJECT, RT, RUBY, SELECT, TEXTAREA其他都没有,比如 div,所以你这个取用getElementByname当然取不到了,而且你的outHTML也有问题这个不属于W3C标准,火狐下不兼容d[d.length-1].outerHTML = "";而且d[d.length-1]你是想取最后一个节点吧,这么取还不如d.lastChild比较好,当然这个只是小问题
      

  2.   

    楼主的id属性也有问题,这个可以用id代替name,直接去掉想去掉的项目,注意使用单独的id名
      

  3.   

    DIV是没有NAME属性的.NAME只有表单控件才有效.