我正在使用JavaScript函数处理超链接的click事件。我想从超链接中检索数据。
页面如下所示:
<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>
JavaScript就像这样:
$(function() {
$('a.linkJs').click(function(){
value=$(this).parent().prev().text();
alert(value);
});
});
我想要的是div2中TITLE的值。点击我得到的第一个链接:标题1.点击第二个标题:标题2.
这一定是非常基本但我无法在任何地方找到答案。
感谢。
答案 0 :(得分:3)
您想使用closest
var value = $(this).closest('div').attr('title');
您的问题是,<p>
标记不是<div>
的兄弟,而是一个孩子,所以您必须做parent()
两次 - 但是,没有必要,因为closest
函数是一个方便的快捷方式。此外,text()
函数返回标记内的纯文本内容,如果您需要标记的title属性,则需要使用attr
函数。
答案 1 :(得分:2)
您可以使用closest方法找到它:
$('a.linkJs').click(function(){
value=$(this).closest('div').attr('title');
alert(value);
});
答案 2 :(得分:1)
尝试使用closest()
方法:http://api.jquery.com/closest/
获得第一个祖先元素 匹配选择器,从...开始 当前要素和进步 通过DOM树。
$(function() {
$('a.linkJs').click(function(){
value=$(this).closest(".div2").attr("title");
alert(value);
});
});
答案 3 :(得分:0)
var value = $(this).closest('.div2').attr('title');
div
可能是更合适的选择器,而不是使用.div2
,因为div.div2
中可能还有其他div元素。
答案 4 :(得分:0)
不是很漂亮,但这也应该有效。
$(function() {
$('a.linkJs').click(function(){
value=$(this).parents()[1];
alert($(value).attr('title'));
});
});