zoukankan      html  css  js  c++  java
  • javascript删除元素所引起的 对于NodeList的理解

    今天开发中遇到的一个比较诡异的问题,让我初窥了DOM的NodeList 不知道我的理解对不对
    先说需求:
    一个ul里面有若干个li,数目不定,我需要删除除去最后一个的 前面所有的 li;
    这样的需求 第一直觉 在ul里面循环 逐个删除
    代码如下:
    var li = ul.getElementsByTagName('li');
    var len = li.length;
    for(var i=0 ; i< len-1; i++){
       ul.removeChild(li[i])
    }

    但实际上这样是不行的,行不通~~

    原因:当删除掉第一个子元素后,第二个子元素的顺序就动态的变成了0,因为第一个没有了 所以第二个成了第一个 依次类推 这样的话 所谓的删除第二个元素就变成删除第三个元素了

    将代码为如下,其实改动很小:

    for(var i=0; i<len-1; i++){
       ul.removeChild(li[0]);
    }

    这个思路是 每次都删除第一个元素 这样就可以了

    原因是什么呢 我百度了下 不知道得到的答案是不是正确的

    NodeList是DOM中一个可以从0开始的标签索引,这种对象一般是可以同时返回多个单节点的DOM方法返回过来的。(如上文的getElementsByTagName('li')),NodeList

    是一个动态的对象,对文档树的任何操作将直接反映到这个对象上。比如文档子节点的增删改移动都会使NodeList对象的索引和内容发生变化。

    目前得到的答案是这样,先记一下~~

  • 相关阅读:
    半链接和关联转换
    My97 DatePicker图标触发
    My97 DatePicker普通调用
    JavaScript获取路径
    OR扩展
    linux vmstat使用说明
    linux sar查看网络流量
    library cache: mutex X
    My97DatePicker日历控制按日、按周和按月选择
    利用PowerDesigner15在win7系统下对MySQL 进行反向工程(三)
  • 原文地址:https://www.cnblogs.com/lxin/p/2595434.html
Copyright © 2011-2022 走看看