WEB开发网
开发学院网页设计JavaScript JQuery Tips(3)----关于$()包装集内元素的改... 阅读

JQuery Tips(3)----关于$()包装集内元素的改变

 2009-12-17 00:00:00 来源:WEB开发网   
核心提示: 从上面可以看出新包装集内的元素增加了parents()方法 VS closest()方法这两个方法都是由当前元素向上查找所匹配的元素,不同之处如下:<divid="wrapper"><divid="two"><pid=&quo

从上面可以看出新包装集内的元素增加了

parents()方法  VS closest()方法

这两个方法都是由当前元素向上查找所匹配的元素,不同之处如下:

  <div id="wrapper"> 
    <div id="two"> 
      <p id="p1"> 
        the two</p> 
    </div> 
    </div> 
  <script type="text/javascript"> 
    alert($("#p1").parents("div").length); //alert 2 include <div id="two"> and <div id="wrapper"> 
    alert($("#p1").closest("div").length); //alert 1 and only include <div id="two"> 
    alert($("#p1").parents("p").length); //alert 0 because it does not include current element 
    alert($("#p1").closest("p").length); //alert 1 because it contain itself <p id="p1"> 
  </script>

对于parents方法来说,会将当前元素向上的所有匹配元素加入新的包装集并返回,而closest方法只会包含离当前元素最近的元素,所以使用closest方法后当前包装集内的元素只能为1个或者0个

而parents方法并不包括当前包装集内的元素,而closest方法会包含当前包装集内的元素

直系子元素 VS 所有子元素

使用children可以返回直系子元素,而用find加通配符的方法可以返回除了文本节点之外的所有子元素:

  <div id="wrapper"> 
    text node here 
    <div id="two"> 
      <p id="p1"> 
        the two</p> 
    </div> 
    </div> 
  <script type="text/javascript"> 
    alert($("#wrapper").children().length);//alert 1 because only direct children included 
    alert($("#wrapper").find("*").length); //alert 2 because all desendants included 
    alert($("#wrapper").find(">*").length);//alert 1 because only direct children included 
  </script>

编缉推荐阅读以下文章

  • JQuery Tips(2)----关于$()包装集你不知道的
  • JQuery Tips(1)----关于$.Ready()

Tags:JQuery Tips 关于

编辑录入:爽爽 [复制链接] [打 印]
赞助商链接