Javascript 删除性能
我正在尝试移除多个分区中Ul条件下的liJavascript 删除性能,javascript,jquery,performance,Javascript,Jquery,Performance,我正在尝试移除多个分区中Ul条件下的li <div> <ul> <li class="sel">.....</li> <li class="sel">.....</li> ............ <li>.....</li> <li>.....</li> .......
<div>
<ul>
<li class="sel">.....</li>
<li class="sel">.....</li>
............
<li>.....</li>
<li>.....</li>
...........
<!-- I have some 600 li's -->
</ul>
</div>
换句话说,比如
$("ul", this).each(function(){
$("li[class!=sel]", this).remove(); // Also tried with 'not'
});
现在的问题是,当我试图在IE中执行这些方法时,会出现脚本重载错误
请帮我找出其他方法来移除不需要的李
注意:我不想保留联合国通缉李的隐藏状态
提前感谢…如果您正在使用,则不需要用包装它。each()
-只需这样称呼它:
$('li[class!="sel"]').remove();
// Find the first <li> with class="sel" and get it's parent <ul>
var $ul = $('li.sel:first').parent('ul');
// Use $ul as the context for the removal of the <li> elements
$('li[class!="sel"]', $ul).remove();
选择器('li[class!=“sel”]'
)正在抓取所有没有classsel
的元素,然后对整个元素集调用remove()
方法
编辑
如果您只想针对包含
元素的
,可以如下设置上下文:
$('li[class!="sel"]').remove();
// Find the first <li> with class="sel" and get it's parent <ul>
var $ul = $('li.sel:first').parent('ul');
// Use $ul as the context for the removal of the <li> elements
$('li[class!="sel"]', $ul).remove();
//使用class=“sel”查找第一个,并获取它的父级
var$ul=$('li.sel:first').parent('ul');
//使用$ul作为删除- 元素的上下文
$('li[class!=“sel”],$ul.remove();
尝试分离ul,移除li,然后重新连接ul
$("ul", this).detach().find("li").not(".sel").remove().end().end().appendTo(this);
这可以防止浏览器重新绘制,直到需要删除的所有li都被删除。值得一提的是,我在几周前遇到了类似的问题,仅在IE8中,甚至对id选择的单个项目调用.remove()。只有当元素包含大量内容时才出现问题
我所做的是在调用.remove()
之前调用.html(“”)
清除元素。这大大缩短了时间(亚秒)
我的情况显然不同(一个元素与多个元素,由id与上下文选择器选择,不确定你的li
内容是什么,等等),但可能值得一试
$("ul", this).each(function(){
$("li[class!=sel]", this).html('').remove();
});
他怎么会用选择器传入这个代码>。“我正在尝试移除多个div中Ul条件下的li。”@Max你能展示div结构的样子吗?我们谈论的是多少div,有多少ul和li?@kevin:我的div和ul是动态的。所以我肯定有超过10个div,但不到20个div。li的内部每个都可以是n个数字,正如我在问题的第二个示例中所示,这就是我所尝试的:我不应该打扰其他ul的li。所以我提到了这个。@Max:我不认为这个
指的是你认为它在上面的上下文中所做的事情。如果需要指定上下文,只需将其添加到选择器中即可。也许更具体地说明您当前的标记将有助于我的澄清。我的应用程序使用的是我们在易趣上看到的过滤器。我选择的过滤器应在每个类别下突出显示。在一个类别中,如果我选择了一个字段,则可以删除该类别下的其余字段。@Max:我更新了答案,以包含一个设置选择器上下文的示例,以便只选择包含的