我有一个带有this
变量的jquery对象的引用。我正在寻找一种将子选择器应用于对象的方法。
我正在使用$(this).find('table > tbody > tr > td')
,但我的目标更像$('[Value of $(this) goes here somehow] > table > tbody > tr > td')
。
我意识到我可以做$(this).children('table').children('tbody').children('tr').children('td')
,但我想知道是否有一些我可以在这里使用的语法糖。
答案 0 :(得分:23)
使用child selector (>
)时,您可以使用.find()
开头,如下所示:
$(this).find('> table > tbody > tr > td')
这是一个经常被忽视的用例,但它对你所追求的东西非常有用。
答案 1 :(得分:7)
正如尼克所说,你可以使用 find(),或者你可以使用selector context:
$('> table > tbody > tr > td', this)
// Is the equivalent of
$(this).find('> table > tbody > tr > td')
答案 2 :(得分:5)
另一种方法是传递第二个参数$('selector', context)
,它定义了搜索的上下文。
默认情况下,选择器在DOM开始时执行搜索 在文档根目录。但是,可以给出替代上下文 使用可选的第二个参数到$()函数进行搜索。
$( "div.foo" ).click(function() {
$( "span", this ).addClass( "bar" );
});