繁体   English   中英

如果最近的 href 有一些 class,则删除 Jquery 中的元素

[英]Delete element in Jquery if closest href has some class

我有一个菜单,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”class时,我只需要删除span中的第一个单词。 什么时候是“bbb”——不是,而是删除 img(因为在这种情况下我没有要显示的 real.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>

您可以尝试如下:

 $('#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();
   }
 });

你可以使用类似的东西:

$('#manufact li a.aaa span').each(function(){
    var element = $(this);
    element.text(element.text().split(' ').splice(1).join(' '));
});

$('#manufact li a.bbb img').each(function(){
    $(this).remove();
});

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM