我不能简单地在API文档中找到这些信息,因为我不知道如何正确调用它。所以问题是:
我有这种jQuery选择器用法:
var $table = $('#sort-table'); // id of <table>
var $rows = $('tbody > tr', $table); // , $table ???
那么$ rows的第二个参数是什么意思?如果你这么善良,请你帮我在jQuery文档中找到它吗?
答案 0 :(得分:2)
var $ rows = $('tbody&gt; tr',$ table);
根据jQuery documents jQuery( selector [, context ] )
$('tbody > tr', $table);
或
$table.find('tbody > tr');
context
用于使用给定的选择标准调用其上的查找
答案 1 :(得分:2)
第二个参数为选择提供context。您的rows
变量将包含tr
元素,这些元素是tbody
元素的直接子元素,它们是$table
中包含的元素的后代。< / p>
你也可以像这样写它,在这种情况下它的行为方式完全相同:
var $rows = $("#sort-table tbody > tr");
context参数有点等同于.find()
方法,所以你也可以把它写成:
var $rows = $table.find("tbody > tr");
答案 2 :(得分:2)
表示在$ table
中找到tr
这类似于调用
var $rows = $table.find('tbody > tr');
第二个参数$('tbody > tr', $table);
是上下文,它是可选的..
答案 3 :(得分:2)
它是上下文参数,相当于$table.find('tbody > tr')
给定的选择器tbody > tr
将在给定的上下文$table
内查找。
例如:在您的页面中,您可能有多个表,如果您使用选择器$('tbody > tr')
,那么您只对一个表上的行感兴趣,将选择所有tr
个所有表格。那不是你想要的。
但是你在$('tbody > tr', $table)
中将上下文作为你感兴趣的表传递,那么选择器tbody > tr
将仅针对$table
表的子项执行,只获取所需的tr
秒。
演示:Fiddle。
如果您查看演示,则css属性$rows.css('color', 'red');
仅应用于第一个表,其中$('tbody > tr').css('font-weight', 'bold');
应用于所有表。
答案 4 :(得分:2)
它被称为选择器的上下文,用于将查询限制为某个“范围”,由您用作上下文的jQuery对象指定。
来自文档:
默认情况下,选择器在DOM开始时执行搜索 在文档根目录。但是,可以给出替代上下文 通过使用可选的第二个参数到$()函数进行搜索。 例如,要在事件处理程序中进行搜索,搜索可以是 像这样限制:
$( "div.foo" ).click(function() {
$( "span", this ).addClass( "bar" );
});
有关该
的更多信息,请参阅:http://api.jquery.com/jQuery/在你的例子中意味着:
var $rows = $('tbody > tr', $table);
与:
相同var $rows = $table.find('tbody > tr');
答案 5 :(得分:0)
看看这里发生了什么:
var $table = $('#sort-table');
var $rows = $('tbody > tr', $table);
在代码的第一行中,变量$table
保持表格#sort-table
。
在第二行代码中,请仅在此'tbody > tr'
中找到$table
。
这也可以这样写:
var $rows = $('tbody > tr', '#sort-table');
//-says find-^^^^^^^^^--in-^^^^^^^^^^^----this table
您也可以通过查找来实现此目的:
var $rows = $('#sort-table').find('tbody > tr');
或
var $rows = $table.find('tbody > tr');