2

我正在学习 jQuery,我想知道这两个选择器之间有什么区别:

    $('#puzzleGrid table tr td img');

    $('#puzzleGrid').children('table').children('tr').children('td').children('img');

谢谢!

4

1 回答 1

6

这个children()选择器——正如 Fraicio Matte 所指出的——

第一个将在可用时使用 DOM QSA,这比充满函数调用开销的第二个示例快千万亿倍。

$('#puzzleGrid').children('table').children('tr').children('td').children('img');

非常特定于获取前一个元素的子元素

而这个 -后代选择器

$('#puzzleGrid table tr td img')

将找到具有 id=puzzleGrid.. 的元素的任何“表”后代(下的任何表元素)以及找到的表的任何后代 tr.. 等等。

与第一个等效的是使用> 子选择器

$('#puzzleGrid > table > tr > td > img')
于 2012-08-19T22:17:49.500 回答