What is the second argument in this jquery select

2019-07-24 04:24发布

I have seen it here. What is meant by tbl in the following statement? What does it imply?

var rows = $('tr', tbl);

2条回答
乱世女痞
2楼-- · 2019-07-24 05:06

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
查看更多
Emotional °昔
3楼-- · 2019-07-24 05:23

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

查看更多
登录 后发表回答