如何在Jquery中删除父元素后删除下一个元素

时间:2016-06-29 19:35:00

标签: jquery

我已将问题简化为以下标记:

<div id="A">
   <div id="B"></div>
   <div id="C"></div>
</div>
<br>

和JQuery JS一样:

$('#B').click(function() {
     $(this).parent().remove();
 }

它删除了A,这就是我想要的。但我也想删除紧跟父代后面的br标记。我尝试了parent(),first(),parent(),parent(),parent()等的各种组合......没有运气。

5 个答案:

答案 0 :(得分:2)

您应该使用jQuery .is()检查以检查下一个元素是否为
然后将其删除。请参阅下面的代码和小提琴:

$(document).ready(function() {
  $('#B').click(function() {
    if($(this).parent().next().is('br')) {
      $(this).parent().next().remove()
    }
    $(this).parent().remove();
  });
});

JsFiddle:https://jsfiddle.net/nikdtu/3xx2L20h/

答案 1 :(得分:0)

$('#B').click(function() {
     $(this).parent().remove();
     $(this).parent().nextUntil(':not(br)').remove();
 }

试试这个代码段

答案 2 :(得分:0)

您可以选择下一个元素并将其删除(它可能是也可能不是<br/>

$('#B').click(function() {
  var nextElement = $(this).parent().next();
  $(nextElement).remove();
  $(this).parent().remove();
 });
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>
<div id="A"> A DIV 
   <div id="B"> B DIV</div>
   <div id="C"> C DIV</div>
</div>
<br/>
NEXT ELEMENT

答案 3 :(得分:0)

$('#B').click(function() {
    $(this).parent().next().remove(); // Removes next element, br in your case
    $(this).parent().remove(); // Removes parent, #A in your case
 }

答案 4 :(得分:0)

JQuery有这样的功能:addBack()

$(this).parent().nextUntil("div").addBack().remove();