JS基础知识之:几个有启示的地方

在学习JS过程中,当看到了下面几点的时候,才开始有点理解JS,点不是很多,但是个人认为很有启示意义


1. firstChild属性和lastChild属性的来源

 

JavaScript中,使用childNodes属性可以返回一个数组,这个数组包含给定元素节点的全体子节点,如代码所示:

<body>

<ul id="action">

      <li title="第一段文字">第一个</li>

     <li title="第二段文字">第二个</li>

</ul>

<script type="text/javascript">

var attr_p = document.getElementById("action");

alert(attr_p.childNodes[1].childNodes[0].nodeValue);

 </script>

</body>

 

如果要取得idactionul的第一个li内的文本节点(如取得:第一个),可以使 用…childNodes[1].childNodes[0].nodeValue这种方法找到,使 用…childNodes[1].firstChild.nodeValue同样可以找到第一个li的文本节点,

结论childNodes[0]等价于firstChild,无论何时何地,重要需要访问childNodes[]数组的第一个元素,我们就可以把它写成firstChildDOM还提供一个与之对应的lastChild属性-clildNodes[]数组里的最后一个元素



2. insetAfter函数的原理:

function insetAfter(newElem,targetElem){
    
 //首先得到父结点,如果elem是没有兄弟结点,直接把要插入的结点放到父结点后就行,会自动放在targetElem的后面
    
    var parentNode=targetElem.parentNode;
    if(parentNode.lastChild==targetElem){
        parentNode.appendChild(newElem);
        
    }else{
       //如果有兄弟结点 parentNode.insertBefore(newElem,targetElem.nextSibling);
    }
   
    
}


3. 绑定多个函数到一个onload事件上:


function addLoadEvent(func){
 var oldοnlοad=window.onload;
 if(typeof window.onload!="function"){
     
  window.οnlοad=func;   
 }else{
  window.οnlοad=function(){
      
   oldonload();
      func();
  }
 }
    
}

参考

http://www.css88.com/archives/387


评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值