childNodes的下标

来源:9-14 删除节点removeChild()

fel

2016-02-29 21:05

function clearText() {

  var content=document.getElementById("content");

  // 在此完成该函数

  

  for(var i=content.childNodes.length;i>0;i--){

    content.removeChild(content.childNodes[i]);

  

  }

}

这样写运行不了,是因为childNodes的下标也是从0开始取吗?

写回答 关注

2回答

  • yyys
    2016-03-01 13:54:58

    childNodes 这个方法基本没法用,存在严重的浏览器兼容性问题,里面可能包含了很多没用的空节点,所以你用childNodes(索引)获取元素是不对的。
    table中获取tr、td等还是挺方便的像这样:
    tr=tbs.rows[索引]
    td=tbs.rows[索引].cells[索引]
    tbody=tbs.rows[0].parentNode
    如果要获取td里面没有id的元素比如input那只能用这个方法:
    var list=tbs.rows[索引].cells[索引].getElementsByTagName('input');
    input=list[索引]

    普通应用下你可以当js没有childNodes这个方法

  • web_胡小先生
    2016-03-01 13:25:35

    是啊,childNodes也是数组,对于数组来书下标一般情况下都是从0开始,最大下标为长度-1

JavaScript进阶篇

本课程从如何插入JS代码开始,带您进入网页动态交互世界

468374 学习 · 21893 问题

查看课程

相似问题