Javascript 如何在jQuery中从同级div元素检索某些文本

Javascript 如何在jQuery中从同级div元素检索某些文本,javascript,jquery,Javascript,Jquery,我在一页上有一些div,顺序如下。当有人点击UL内的链接时。列出我想要捕捉的价值的链接 <span class="asa_portlet_title">Title here</span> 也可以使用纯javascript方法。基本上,我在包含链接的页面上有许多div,这些div在标题所在的页面上方有另一个div 有人能凑一个小的工作样本吗?你不是想得到兄弟姐妹,你是想得到父母的兄弟姐妹。链接这个的 此外,还必须防止元素的默认操作。您可以通过调用事件对象上的prevent

我在一页上有一些div,顺序如下。当有人点击UL内的链接时。列出我想要捕捉的价值的链接

<span class="asa_portlet_title">Title here</span>
也可以使用纯javascript方法。基本上,我在包含链接的页面上有许多div,这些div在标题所在的页面上方有另一个div


有人能凑一个小的工作样本吗?

你不是想得到兄弟姐妹,你是想得到父母的兄弟姐妹
。链接
这个

此外,还必须防止元素的默认操作。您可以通过调用事件对象上的
preventDefault()
来实现这一点

$('ul.list-links a')。单击(函数(事件){
event.preventDefault();
var portletTitle=$(this).closest('.links').prev('.my_portlet').text();
console.log(_portletTitle);
});

标题在这里
标题2

您不是在尝试获取兄弟姐妹,而是在尝试获取父级的兄弟姐妹
。此
的链接

此外,还必须防止元素的默认操作。您可以通过调用事件对象上的
preventDefault()
来实现这一点

$('ul.list-links a')。单击(函数(事件){
event.preventDefault();
var portletTitle=$(this).closest('.links').prev('.my_portlet').text();
console.log(_portletTitle);
});

标题在这里
标题2

谢谢,我想这是我在为stackoverflow设置格式时的一个输入错误。
。我的\u portlet
不是单击元素的兄弟,所以这就是为什么您的逻辑不起作用。但是,
a
元素如何与单个
.my_portlet
相关?如果只有一个
.my_portlet
,那么您根本不需要DOM遍历,只需直接选择它并获取它的文本。在任何给定页面上,可能有两个或三个不同的块,如上面的示例所示,每个块都有不同的标题。始终按照该顺序,但在dom中的不同位置。因此,当单击链接时,直接在单击的链接上方检索.my_portlet标题。我认为这是在为stackoverflow设置格式时输入的错误。
。my_portlet
不是单击元素的同级,因此,您的逻辑不起作用。但是,
a
元素如何与单个
.my_portlet
相关?如果只有一个
.my_portlet
,那么您根本不需要DOM遍历,只需直接选择它并获取它的文本。在任何给定页面上,可能有两个或三个不同的块,如上面的示例所示,每个块都有不同的标题。始终按照该顺序,但在dom中的不同位置。因此,当单击链接时,直接在单击的链接上方检索.my_portlet标题谢谢,这非常有效!但是,如果我添加另一个相同的块,那么有两个链接块和两个标题块,当单击时,它将捕获这两个块,而不是上面最近的一个。我修改了您的代码块以包含我的意思。您可以使用
prev()
而不是
sliblings()
prev()
将返回当前同级之前的第一个同级。我会更新我的答案。谢谢,这很有效!但是,如果我添加另一个相同的块,那么有两个链接块和两个标题块,当单击时,它将捕获这两个块,而不是上面最近的一个。我修改了您的代码块以包含我的意思。您可以使用
prev()
而不是
sliblings()
prev()
将返回当前同级之前的第一个同级。我会更新我的答案。
<div class="my_portlet" style="display:none;">
    <span class="asa_portlet_title">Title here</span>
</div>

<div class="links">
    <div class="">
        <ul class="list-links">
            <li class="margin-bottom-medium">
                <a href="linkhere.html" target="_self">Link name</a> 
                <a href="linkhere.html" target="_self">Link name</a> 
                <a href="linkhere.html" target="_self">Link name</a> 
                <a href="linkhere.html" target="_self">Link name</a> 
            </li>
        </ul>
    </div>  
</div>
$('[ul.list-links a').click(function() {
    var _portletTitle = $(this).siblings('.my_portlet').text(); 
});