是否有相对jQuery选择器这样的东西?

时间:2010-08-23 10:51:49

标签: jquery jquery-selectors syntactic-sugar

我有一个带有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'),但我想知道是否有一些我可以在这里使用的语法糖。

3 个答案:

答案 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" );
});