这个选择器有效吗? $(this)指的是什么?
$('div', $(this).parents('div'))
我只是学习javascript和jquery,谢谢
答案 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的后代。更多here和here。
示例:我们假设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')
将与d1
和d2
匹配。然后$('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
内。