jQuery 找到最近的 parent link 属性
jQuery find closest parent link with attribute
我想从 children .startpoint
中找到属性 findme
最近的 link。
结构:
<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
不是 parent 元素而是 parent 的另一个 child,我的示例将找不到元素。
示例:http://jsfiddle.net/rjhgvxoe/
我怎样才能让它工作?
您需要使用:
$('.startpoint').closest("ul").find('[data-findme]')
您需要这样的选择器:
$('.startpoint').closest("li:has(*[data-findme])")
这将查询最近的 <li>
元素,该元素包含具有属性 data-findme
的元素。从那里抓住锚点
$('.startpoint').closest("li:has(*[data-findme])").children('[data-findme]')
我想从 children .startpoint
中找到属性 findme
最近的 link。
结构:
<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
不是 parent 元素而是 parent 的另一个 child,我的示例将找不到元素。
示例:http://jsfiddle.net/rjhgvxoe/
我怎样才能让它工作?
您需要使用:
$('.startpoint').closest("ul").find('[data-findme]')
您需要这样的选择器:
$('.startpoint').closest("li:has(*[data-findme])")
这将查询最近的 <li>
元素,该元素包含具有属性 data-findme
的元素。从那里抓住锚点
$('.startpoint').closest("li:has(*[data-findme])").children('[data-findme]')