我已将问题简化为以下标记:
<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()等的各种组合......没有运气。
答案 0 :(得分:2)
您应该使用jQuery .is()检查以检查下一个元素是否为
然后将其删除。请参阅下面的代码和小提琴:
$(document).ready(function() {
$('#B').click(function() {
if($(this).parent().next().is('br')) {
$(this).parent().next().remove()
}
$(this).parent().remove();
});
});
答案 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();