2010-06-13 54 views

回答

2

它是有效的。它采取this的所有父div,然后找到它们下面的所有div。它分解:

var jq = $(this);    // Get a jQuery object for `this` 
var parents = jq.parents('div'); // Find all of its parents that are divs 
var divs = $('div', parents); // Find all divs under those parent divs 

结果是对所有属于该是this父母的div的后代的div匹配的jQuery对象。更多herehere

实施例:让我们假设this最初是指下面的input元件foo

<div id='d1'> 
    <div id='d2'> 
     <input id='foo' type='button'> 
     <div id='d3'> 
     ... 
     </div> 
    </div> 
    <div id='d4'> 
     <div id='d5'> 
     ... 
     </div> 
    </div> 
</div> 

$(this).parents('div')将匹配d1d2。然后$('div', parents)将匹配:

  • d3
  • d2(怎么一回事,因为除了是父母的一个,它是d1孩子)
  • d4
  • d5
0

其实:

$('div', $(this).parents('div')) 

jQuery functionjquery()$())需要选择的至少一个参数和第二任选的一种为背景下,在你的例子$(this).parents('div')

因此,上面的代码将在$(div)上执行,这是在$(this).parents('div')的上下文中。然而,这并不算多往常一样,它多数情况下,它看起来像:

$('#element').click(function(){ 
    $('div', this).addClass('some class'); 
}); 

在上述情况下,this#element,然后添加类div内部的。

相关问题