2010-09-28 37 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」的角色屬性的元素。