帮助jQuery选择器

时间:2010-10-14 00:48:00

标签: jquery jquery-selectors

我有以下标记

<div id="FirstDiv">
  <div class="MyClass">
      <span>
           <a href="#">link 1</a>
           <a href="#">link 2</a>
      </span>
  </div>
</div>
<div id="SecondDiv">
  <div class="MyClass">
      <span>
           <a href="#">link 1</a>
           <a href="#">link 2</a>
      </span>
  </div>
</div>

如何在DIV“SecondDiv”中选择<a>标记元素?

其实我在做

$(".MyClass > a").click(function (event) {

但是这也会选择第一个div的链接。

5 个答案:

答案 0 :(得分:4)

$('#SecondDiv a')

这会使用SecondDiv元素的ID,并选择all descendant <a>元素。

您使用的是the > child selector,它只会选择直接的孩子。你是对的,它会从.MyClass元素中选择。

另一种可能性是将a .delegate()放在SecondDiv元素上,以匹配嵌套<a>元素的点击次数。

$('#SecondDiv').delegate( 'a', 'click', function() {
      // your code
});

编辑:在下面引用您的评论时,您可以将其限制在<a>元素中的.MyClass元素,方法是将其放在选择器中。

$('#SecondDiv .MyClass a')

现在不会包含任何不属于<a>的{​​{1}}元素。

答案 1 :(得分:2)

您应该在此处使用ID选择器(#)而不是类选择器(。)

$("#SecondDiv a").click(function (event) {

详细了解ID SelectorClass selector

答案 2 :(得分:2)

$("#SecondDiv a").click(function(){
  alert("Hi-o");
});

答案 3 :(得分:1)

$("#SecondDiv").find("a").click(function(event) {});

答案 4 :(得分:0)

为什么dontb yu使用第二个div的id('#second div')

http://api.jquery.com/children/