我遇到了一个jquery的奇怪问题。 我必须删除身体的最后一个孩子,以使调整大小功能正常工作。 最后一个孩子是由twitter-social-plugin插入的div,已经过时了。
在我的调整大小功能中,我尝试了
$('body:last-child').remove();
该文件的结构如下
<body>
<div>here comes content and stuff</div>
</div>that´s the div to be removed</div>
</body>
当调用resize-function时,整个body-tag被删除,我得到一个空白页面。 调整大小功能:
$(document).ready(function() {
$(window).bind('resize', function() {
$('body:last-child').remove();
contentStretch();
function contentStretch() {
$('#content-stretch').css({
height: "0"
});
var page_height = $('#container').height();
var window_height = $(window).height();
var difference = window_height - page_height;
if (difference < 0) {
difference = 0;
};
$('#content-stretch').css({
height: difference + "px"
});
};
});
});
答案 0 :(得分:3)
:last-child
selector获取作为其父级的最后一个子元素的元素,它不查找元素中的最后一个子元素。 body
元素是其父元素的最后一个子元素,因为只有一个body
元素。
删除div
元素的直接子项的最后一个body
:
$('body > div:last-child').remove();
答案 1 :(得分:1)
:last-child
选择器是其附加到的项目的修饰符。所以你基本上是说删除最后一个body
元素。
使代码工作以删除body
的最后一个直接子项的最简单更改是向选择器添加空格。
$('body :last-child').remove();
然而,这有点危险,我建议你更准确地说明你要删除的内容。例如,您可以为所有div
元素提供一个公共类,例如container
。然后您还可以使用:last-of-type选择器。这确保您将完全删除您期望的内容,即使您在DOM结构的同一级别上有其他不同类型的元素。
$('.container:last-of-type').remove();
答案 2 :(得分:0)
试试这个
$('div:last').remove();