我必须找到一些没有指定祖先的元素。 示例代码:
<a href="#">
<img src="pic1.jpg" />
</a>
<p>
<img src="pic2.jpg" />
</p>
我想选择所有未包装在img
标签中的a
标签。
我该怎么办?
答案 0 :(得分:3)
我是用以下代码完成的:
$("img").filter(function(){
return $(this).closest('a').length === 0
}).css("border", "3px solid red");
<script src="https://cdnjs.cloudflare.com/ajax/libs/jquery/3.3.1/jquery.min.js"></script>
<a href="#">
<img src="pic1.jpg" />
</a>
<p>
<img src="pic2.jpg" />
</p>
答案 1 :(得分:1)
您可以使用更简单的解决方案来完成这项工作。
使用:not()
代替.filter( function )
。
$("img:not(a img)").css("border", "3px solid red");
<script src="https://cdnjs.cloudflare.com/ajax/libs/jquery/3.3.1/jquery.min.js"></script>
<a href="#">
<img src="pic1.jpg" />
</a>
<p>
<img src="pic2.jpg" />
</p>
答案 2 :(得分:0)
也可以使用父级:
var images = $('img').filter(function(){
if(!$(this).parent().is('a')) {
return $(this);
}
});