变态的节点集合

今天想实现jQuery的unwrap效果,换言之,就是用其孩子把其父节点干掉。为了效率,用到文档碎片,而取孩子时使用到childNodes(返回一个nodeList)



  
    
    
    节点集合 by 司徒正美 
    
    

  
  

    

司徒正美

司徒正美

司徒正美

司徒正美

司徒正美

节点集合 by 司徒正美

司徒正美

司徒正美

司徒正美

司徒正美

司徒正美

运行代码

如果预先将nodeList转换为数组就没有问题!


      window.onload = function(){
        var d = document.createDocumentFragment();
        var div = document.getElementById("aaa");
        var c = div.childNodes;
        var arr = [];
        for(var i=0,n=c.length;i
节点集合 by 司徒正美

司徒正美

司徒正美

司徒正美

司徒正美

司徒正美

运行代码

顺便一提,由getElementsByTagName取得的HTMLCollection也是这个样子,因此处理这类节点集合要打起十二分精神了!

HTMLCollection by 司徒正美

司徒正美

司徒正美

司徒正美

司徒正美

司徒正美

运行代码

这两种节点集合在各浏览器还实现得不太一样,如标准浏览器我们可以用Array.prototype.slice.call将它们转换为原生数组,IE则报错。标准浏览器的它们有hasOwnProperty与valueOf,而IE是没有的……

你可能感兴趣的:(变态的节点集合)