这应该很简单,但我已经通过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中的想法,但我对此的努力也没有奏效。
提前感谢您的帮助!
答案 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,而不是选择器。
参考文献: