jQuery破坏元素不工作


jQuery destroy element not working

我试图在页面加载时销毁元素。

这是我的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到它。