jQuery 选择器帮助
我有以下标记
<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”内的所有 标记元素?
实际上我正在这样做
$(".MyClass > a").click(function (event) {
,但这也会选择第一个 div 的链接。
I have the following markup
<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>
How can I select alla the <a>
tag elements inside the DIV "SecondDiv"?
Actually I am doing
$(".MyClass > a").click(function (event) {
but this would select also links of the first div.
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(5)
这使用
SecondDiv
元素的 ID,并选择所有后代元素。
您使用的是
>
子选择器,它只会选择直系子女。你是对的,它会从两个.MyClass
元素中进行选择。另一种可能性是将 a
.delegate()
放在SecondDiv
元素,用于匹配嵌套元素的点击。
编辑:参考下面的评论,您可以将其限制为
.MyClass
元素中的元素,方法是将其放置在选择器。
现在,任何不是
.MyClass
派生的元素都不会被包含在内。
This uses the ID of the
SecondDiv
element, and selects all descendant<a>
elements.You were using the
>
child selector, which would only select immediate children. And you're right that it would select from both.MyClass
elements.Another possibility would be to place a
.delegate()
on theSecondDiv
element to match clicks against the nested<a>
elements.EDIT: In reference to your comment below, you can limit it to
<a>
elements in the.MyClass
element by placing that in the selector.Now any
<a>
elements that do not descend from.MyClass
will not be included.您应该在此处使用 ID 选择器 (#),而不是类选择器 (.)
阅读有关 ID 选择器的更多信息 和类选择器。
You should use the ID Selector (#) over here instead of the class selector (.)
Read more about ID Selector and Class selector.
为什么你不使用第二个 div ('#second div') 的 id
或
http://api.jquery.com/孩子们/
why dontb yu use id of second div ('#second div')
or
http://api.jquery.com/children/