这个选择器有效吗?

时间:2010-06-13 09:00:13

标签: jquery

这个选择器有效吗? $(this)指的是什么?

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

我只是学习javascript和jquery,谢谢

2 个答案:

答案 0 :(得分: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

结果是一个jQuery对象,其中包含所有div的匹配项,这些div是作为this父项的div的后代。更多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

答案 1 :(得分:0)

实际上:

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

jQuery function jquery()$())至少需要一个选择器参数,第二个可选参数适用于上下文,在您的示例{{ 1}}。

因此,上面的代码将在$(this).parents('div')上执行,该$(div)位于上下文$(this).parents('div')内。然而,这并不常见,大多数情况下,它看起来像:

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

在上述情况下,this引用#element,然后将类添加到div内。

相关问题