2010-09-28 105 views
4

我想找到内<div id="myid">帮助理解的JQuery属性等于选择

这两个选择工作<td role="foo" class="one two three four">

$('#myid td[role=foo]') 

$('#myid .two') 

但是这一次没有,为什么?

$('#myid .two td[role=foo]') 

回答

13

因为选择符字符串中的空格is a descendant-selector

你需要做的:

$('#myid td.two[role=foo]') 

你有它的样子,你正在寻找<td role="foo">元素是后裔的.two

+1

+1 - 或'$('#myid td [role = foo] .two')';) – 2010-09-28 16:32:39

+0

@Nick - 那样更高效吗? – user113716 2010-09-28 16:33:46

+0

不是真的,只是显示顺序无关紧要:) – 2010-09-28 16:39:05

2

因为你的选择:

$('#myid .two td[role=foo]') 

正在寻找td[role=foo].two的元素中 ID #myid的元素。

你使用的是后代选择器,而不是寻找td[role=foo].two,我认为这是你想要的。

2

你想:

$("#myid td[role=foo].two")... 

此选择:

$('#myid .two td[role=foo]') 

意味着:找到ID为 “身份识别码” 的元素。从它找到所有的后代有一类“两个”。从这些元素中找到所有后代<td>具有值为“foo”的角色属性的元素。