jquery选择器的元素彼此相邻?

时间:2012-12-16 18:07:29

标签: jquery

这应该很简单,但我已经通过Jquery Selector帮助了大约一个小时了,似乎没有任何工作。救命啊!

我基本上试图在用户点击它旁边的链接后拉出SPAN的文本(地址)。请注意,我在页面上大约有10个,所以我无法设置静态地址。必须在用户点击时将其拉出。

HTML代码:

<a href="3" class="clicky">Click to Show Map</a> 
<span style="display: none" class="theaddy">123 Fake Street, Somewhere Else, 12341</span>

所以,我的问题是,当用户点击.theaddy时如何从.clicky抓取文字?

正如我所说,我无法使用

 var propertyaddy = $(.theaddy).text(); 

因为在同一页面上有10个这样的附加组件。我需要某种“这个”&gt;接下来有点事。

我还想到了将SPAN放在A中的想法,但我对此的努力也没有奏效。

提前感谢您的帮助!

2 个答案:

答案 0 :(得分:3)

您可以使用.next()查找任何元素的下一个兄弟。

$('.clicky').on('click', function() {
    var text = $(this).next().text();
    ...
});

只要您所需的.theaddy元素始终是&#34; next&#34;元素没有必要在.next()调用中提供特定的类选择器。

如果中间可能存在其他元素,则可以使用.nextAll('.theaddy').first()。这将生成所有后续.theAddy元素的列表,然后获取第一个这样的元素。

答案 1 :(得分:2)

我建议使用next()

text = $(this).next('.theaddy').text();

在上面的代码中我使用了一个选择器,它只会抓取下一个元素class='theaddy',如果没有那个选择器,它只会抓取任何元素的文本跟随标记中的.clicky元素。

顺便提一下,当您在寻找遍历 DOM的方法时,您需要查看traversing methods,而不是选择器。

参考文献: