[英]jQuery hide parent with all of its children
我实际上是在HTML上点击了子元素之一之后,尝试删除其所有子元素的父元素:
<div class='container'>
<span class='content' id='1'>Lorem</span>
<span class='content' id='2'>Ipsum</span>
<span class='content' id='3'>Dolor</span>
<span class='content' id='4'>Sit</span>
<span id='delete'>Delete</span>
</div>
jQuery的:
$("#delete").click(function() {
var name = $(this).siblings("#1").text();
var surname = $(this).siblings("#2").text();
var add = $(this).siblings("#3").text();
var all = $(this).siblings("#4").text();
$.ajax({
data: {
'name': name,
'surname': surname,
'add': add,
'all': all
},
success: function(data) {
$(this).siblings().remove(); // context of 'this' lost? doesnt work
$(this).parent().remove();
}
});
});
记住。 类container
中的一些元素具有完全相同的结构。
存储的值this
在成功回调范围的变量之外。
$("#delete").click(function() {
var self = this;
// ...
$.ajax({
data: {},
success: function(data) {
$(self).siblings().remove();
$(self).parent().remove();
}
});
});
值得指出的是,删除父元素也将删除所有子元素。 这意味着您在删除父元素之前不必删除兄弟元素。
$(self).parent().remove(); // No need to remove siblings, they will be removed.
但是,您可能想要删除同级元素,然后解包该元素。 这样,您可以保留#delete
元素(如果您要这样做)。
$(self).siblings().remove();
$(self).unwrap();
$("#delete").click(function() {
var elem = $(this);
//Other code
$.ajax({
data: {},
success: function(data) {
elem.siblings().remove();
elem.closest(".container").remove();
}
});
你有没有尝试过这样的事情
$(".content").children().hide();
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.