我想从孩子findme
中找到与属性.startpoint
最近的链接。
结构:
<ul>
<li><a href="#">Point one</a></li>
<li><a href="#" data-findme="yipi">Point one</a>
<ul>
<li><a href="#">Hello</a></li>
<li><a href="#">Hello</a>
<ul>
<li><a href="#" class="startpoint">My Startpoint</a></li>
</ul>
</li>
</ul>
</li>
</ul>
JavaScript(jQuery):
$(document).ready(function(){
console.log(
$('.startpoint').closest("*[data-findme]")
);
});
由于问题是,元素data-findme
不是父元素而是父元素的另一个子元素,我的示例将找不到元素。
示例:http://jsfiddle.net/rjhgvxoe/
我怎样才能让它发挥作用?
答案 0 :(得分:12)
你需要一个像这样的选择器:
$('.startpoint').closest("li:has(*[data-findme])")
这将查询包含具有属性<li>
的元素的最接近的data-findme
元素。从那里抓住锚
$('.startpoint').closest("li:has(*[data-findme])").children('[data-findme]')
答案 1 :(得分:2)