jQuery end(),它确切地说是有用的

时间:2013-08-26 06:39:48

标签: jquery business-logic jquery-end

我查看了函数end(),

的jquery文档

definition:结束当前链中最近的过滤操作,并将匹配元素集返回到先前的状态。

我已经理解了这些功能,但我无法理解,它更有用。

前:

<p>text</p>
<p class="middle">Middle <span>text</span></p>
<p>text</p>

<script type="text/JavaScript">
alert(jQuery('p').filter('.middle').length); //alerts 1
alert(jQuery('p').filter('.middle').end().length); //alerts 3
alert(jQuery('p').filter('.middle').find('span')
</script>

我理解显示//alerts 3的第二行,但它也可以写成

 alert(jQuery('p').length); //alerts 3

那为什么额外的两个方法.filter.end()

请举个例子,其中.end()会很有用。

1 个答案:

答案 0 :(得分:0)

<强> HTML

<p>text</p>
<p class="middle">Middle <span>text</span></p>
<p>text</p>

在此p标签中作为兄弟元素

和pwith类“middle”具有子标签,即“span”标签

现在谈谈你的 js

     <script type="text/JavaScript">

        /*it display 1 and its right first we find p tag then in this we filter by "middle class" 
        and in p tag only one have this class so alert  1
       */
 alert(jQuery('p').filter('.middle').length); 

       /*it display 3 and its right first we find p tag then in this we filter by "middle class" then again use end inn jquery then it again goes to previous selector means  
    (jQuery('p').filter('.middle') to jQuery('p') 

    so it alert 3
                  */
 alert(jQuery('p').filter('.middle').end().length); //alerts 3

    /*it display 3 and its right first we find p tag then in this we filter by "middle class" then again use find span and it has one span in middle class so it alert 1

   */ 
        alert(jQuery('p').filter('.middle').find('span').length); alert 1
        </script>

参考end

find

filter