我试图在页面加载时销毁元素。
这是我的jQuery:<script type="text/javascript">
var amount = 0;
$('li.<?php echo $username ;?>').each(function() {
amount++
if (amount > 1) {
$(this).destroy();
}
});
</script>
由于某些原因。destory不能工作。我将列表项限制为1,但上面的代码仍然会生成所有列表项。
我已经通过使用。remove解决了这个问题。唯一的问题是,有成千上万的元素需要加载,并且仍然在dom中加载。这会导致很长的加载时间。
你知道我还可以尝试什么吗?
欢呼,丹
首先,应该使用remove(),而不是destroy。然后,这取决于您包含脚本的位置。如果您已经将它包含在HTML的头部,则需要等待DOM准备好,使用$(document).ready(..),如下所示:
<script type="text/javascript">
$(document).ready(function(){
var amount = 0;
$('li.foo').each(function() {
amount++
if (amount > 1) {
$(this).remove();
}
});
})
</script>
try this
$(this).remove();
代替destroy
选择器中应该使用:first
而不是amount++
。
例如$('li.<?php echo $username ;?>:not(:first)')
我认为与其单独删除每个元素,不如试着只删除它们的父元素,因为如果你删除了父元素,那么它的所有子元素都会被自动删除。
尝试删除ul
而不是每个元素。
现在,如果你不想删除第一个元素,那么你克隆它在一些变量使用http://api.jquery.com/clone/,然后在删除父ul
后,你可以再次创建ul
,然后插入克隆的li
到它。