当我点击id
元素时,我需要获取第一个最近(最近)li
父元素的a
。
<ul>
<li id="wrong1">
<ul>
<li id="p1">
<a href="" class='btn'></a>
</li>
<li id="p2">
<a href="" class='btn'>Click here!</a>
</li>
<li id="p3">
<a href="" class='btn'></a>
</li>
</ul>
</li>
<li id="wrong2"></li>
</ul>
当我点击Click here!
时,我应该得到li#p2
元素。
我用过:
$('a.btn').click(function(e) {
var GotIt = $(this).parents().find('li').attr('id');
});
但显然它没有用。我也试过了closest()
,结果也一样。
如何妥善获取元素?
答案 0 :(得分:3)
您应该将脚本编写为
$('a.btn').click(function(e) {
var GotIt = $(this).closest('li').attr('id');
});
因为&#34; li&#34;是你&#34; a&#34;的直接父母。元素,所以你也可以使用像
$('a.btn').click(function(e) {
var GotIt = $(this).parent().attr('id');
});
答案 1 :(得分:2)
答案 2 :(得分:2)
答案 3 :(得分:0)
注意!
尽管给出的答案适用于这种情况(您的情况),但它们是错误的-关于问题:
“ 最亲近的父母和[everever]]”
正确是
$element.parent().closest([what ever])
closest()
包括元素本身,并且只要它不是[everever],脚本就可以正常工作,但是…
在许多脚本中这是一个微不足道的错误,它在DOM之后显示-在开发的后期进行设计更改。
文档说closest()
:
对于集合中的每个元素,获取第一个元素 通过测试元素本身并向上遍历来匹配选择器 通过它的祖先在DOM树中。
(对我大胆)