首页 > 解决方案 > 如果最近的 href 有某个类,则删除 Jquery 中的元素

问题描述

我有一个菜单,LI 有时有一个 img,有时没有。

<ul id="manufact">
<li>
<a href="" class="aaa">
<img>
<span>First name</span>
</a>
</li>
<li>
<a href="" class="bbb">
<img>
<span>Second name</span>
</a>
</li>
</ul>

当 href 中有“aaa”类时,我只需要删除 span 中的第一个单词。什么时候是“bbb”——不是,而是删除 img(因为在这种情况下,我没有要显示的真实 .jpg 文件,并且在 Safari 中有一个空白的丑陋的“?”)。

所以我像这样尝试

$('#manufact li > a span').each(function(){
var element = $(this);
if($(this).closest("a").is( ".aaa")){
    element.text(element.text().split(' ').splice(1).join(' '));
}
// It works
else {
   Here I failed to put some JS to delete top Img.
}
});

我想要的结果是(与最近的、以前的、父母等一起玩但失败了)

<ul id="manufact">
<li>
<a href="" class="aaa">
<img>
<span>name</span>
</a>
</li>
<li>
<a href="" class="bbb">
<span>Second name</span>
</a>
</li>
</ul>

标签: javascriptjquery

解决方案


您可以尝试如下:

 $('#manufact li > a span').each(function() {
   var element = $(this);
   if ($(this).closest("a").is(".aaa")) {
     element.text(element.text().split(' ').splice(1).join(' '));
   }
   else if ($(this).closest("a").is(".bbb")) {
     $(this).prev("img").remove();
   }
 });

推荐阅读