Javascript 关于jQuery中parent()和prev()的非常基本的问题
我正在使用JavaScript函数处理超链接的单击事件。我想从超链接中检索数据 页面如下所示:Javascript 关于jQuery中parent()和prev()的非常基本的问题,javascript,jquery,parent-child,parent,Javascript,Jquery,Parent Child,Parent,我正在使用JavaScript函数处理超链接的单击事件。我想从超链接中检索数据 页面如下所示: <div class="div1"> <div title="Title 1" class="div2"> <p class="p1"><a class="linkJs">The link in question</a></p> </div> </div> <div clas
<div class="div1">
<div title="Title 1" class="div2">
<p class="p1"><a class="linkJs">The link in question</a></p>
</div>
</div>
<div class="div1">
<div title="Title 2" class="div2">
<p class="p1"><a class="linkJs">The link in question</a></p>
</div>
</div>
$(function() {
$('a.linkJs').click(function(){
value=$(this).parent().prev().text();
alert(value);
});
});
我想要的是div2中标题的值。通过单击第一个链接,我得到:标题1。点击第二个:标题2
这必须是非常基本的,但我就是找不到我的答案
谢谢。您可以通过以下方法找到它:
你想用
您的问题是,
标记不是
的兄弟,而是一个孩子,因此您必须执行两次parent()。另外,text()
函数返回标记内的纯文本内容,如果您想要标记的title属性,则需要使用attr
函数。尝试使用最近的()方法。
方法:
获取第一个祖先元素
匹配选择器,从
当前元素并向上推进
通过DOM树
与其使用div
,.div2
可能是一个更合适的选择器,因为div.div2
中可能有其他div元素 不是很漂亮,但这也应该有用
$(function() {
$('a.linkJs').click(function(){
value=$(this).parents()[1];
alert($(value).attr('title'));
});
});
var value = $(this).closest('div').attr('title');
$(function() {
$('a.linkJs').click(function(){
value=$(this).closest(".div2").attr("title");
alert(value);
});
});
var value = $(this).closest('.div2').attr('title');
$(function() {
$('a.linkJs').click(function(){
value=$(this).parents()[1];
alert($(value).attr('title'));
});
});