2010-05-04 41 views
1

这个jQuery选择器有什么问题?jQuery:Selector混淆

$("#masterHeaderMenu.masterHeaderMenuButton a:first") 

我打算选择第一锚标记,它是一种元素,它的类是“masterHeaderMenuButton”,本身的元素与“masterHeaderMenu”一个“id”属性值的孩子的孩子。

我不能在jQuery中做到这一点?

回答

6

你在那里需要一个额外的空间,就像这样:

$("#masterHeaderMenu .masterHeaderMenuButton a:first") 

没有空间,#masterHeaderMenu.masterHeaderMenuButton正在寻找有id="masterHeaderMeny"class="masterHeaderMenuButton"一个元素,空间,它说发现class="masterHeaderMenuButton",这是一个#masterHeaderMeny的后裔,而不是相同的元素。

如果你想要降低任何级别的数量,请添加一个空间,如果你想降只有一个级别,请使用>,这意味着只能下到眼前的孩子。

+0

+1对于直接Decendent'提得>' – gnarf 2010-05-04 01:19:01

4

您可以。你需要的第一个元素(ID)和第二(类)之间的空间:

$("#masterHeaderMenu .masterHeaderMenuButton a:first") 

你选择寻找那些有ID“masterHeaderMenu” CSS类“masterHeaderMenuButton”的元素。

0

没有必要指定类。如果您在选择器中给出ID名称就足够了。 ID可以表示文档中的单个html元素。但该类可以表示一组html元素。

$("#masterHeaderMenu .masterHeaderMenuButton a:first") 

这个选择可能需要一段时间。 相同的结果可以从这个代码$("#masterHeaderMenu a:first")

+0

这是不正确,如果他下'与您联系“同样的结果”答案将得到#masterHeaderMenu' 20元来自所有人的第一个链接,而不是与那个班级的第一个链接,他们不是**相同。 – 2010-05-04 10:06:34

+0

我错了!我认为他打算选择第一个锚标签,它是类“masterHeaderMenuButton”的元素的子元素,并且它具有id“masterHeaderMenu”。 – user3774128 2010-05-06 09:19:30