如果li中包含某个类的元素,如何让它删除自己



现在我正在尝试删除包含某个类classname的所有li

if ( $('li .classname').length > 0 ){
alert('Yeah im here');
$(this).remove();
}

我收到了警报,似乎在验证我是否正确检查了它。不过,我该从哪里着手,让它自己删除呢?如果有更好的方法,请告诉我。

HTML。。。

<li>
<div class="classname">
Hi
</div>
</li>

您可以使用:has((选择器

$('li:has(.classname)').remove();
<script src="https://cdnjs.cloudflare.com/ajax/libs/jquery/3.3.1/jquery.min.js"></script>
<ul>
<li>
<div>No classname</div>
</li>
<li>
<div class="classname">Has classname</div>
</li>
<li>
<div>No classname</div>
</li>
<li>
<div class="classname">Has classname</div>
</li>
</ul>

您可以尝试使用每个方法,在这个方法中,您可以使用this作为选择器来指向.classname元素。

然后,使用parent方法获得用于删除的li标签

$('li .classname').each(function () {
alert('Yeah im here');

// point to <li> item that contains this element
var li = $(this).parent();

// remove parent 
li.remove();
});
<script src="https://cdnjs.cloudflare.com/ajax/libs/jquery/3.3.1/jquery.min.js"></script>
<ul>
<li>
<div>Hi</div>
</li>
<li>
<div class="classname">Hi</div>
</li>
<li>
<div>Hi</div>
</li>
</ul>

最新更新