问题
I have seen it here. What is meant by tbl
in the following statement? What does it imply?
var rows = $('tr', tbl);
回答1:
The tbl
in the above is another dom element. This is passed in as the (optional parameter) context
:
jQuery( selector [, context ] )
...for the selector
, in this case 'tr'
.
source
So essentially this:
$('tr', tbl);
says return me everything that matches the selector 'tr'
in the element(s) tbl
.
Example
So given
<table>
<tr>first</tr>
<table>
<table id="test">
<tr>second</tr>
</table>
This returns varying results:
//context is global
$('tr') => first & second
//restrict the context to just the second table
//by finding it and passing it into the selector
var tbl = $('#test');
$('tr', tbl) => just second
回答2:
This pattern is using jQuery context. Your query is used to find the rows within the table.
var tbl = $("table#tableId"); // this line provides the context
var rows = $("tr", tbl); // finding all rows within the context
This is equivalent to writing
var rows = tbl.find("tr")
There is good explanation on using jQuery context in this SO Question here
来源:https://stackoverflow.com/questions/37256964/what-is-the-second-argument-in-this-jquery-select-statement