代码:
<div id="d1">d1</div>
<div id="d2">d2</div>
<script>
$(function(){
var j=$();
j=j.add("#d1");
j=j.add("#d2");
j.remove("#d1");//not this...
//alert(j.length);
j.css("border","1px solid red");
});
</script>
我已使用j.add()
向j
添加元素,但如何从#d1
删除j
?
j.remove()
无效,因为它删除了#d1
,而j.length
仍为2。
谢谢大家! :)
答案 0 :(得分:11)
<div id="d1">d1</div>
<div id="d2">d2</div>
<script>
$(function(){
var j=$();
j=j.add("#d1");
j=j.add("#d2");
j=j.not("#d1");
//alert(j.length);
j.css("border","1px solid red");
});
</script>
答案 1 :(得分:1)
<div id="d1">d1</div>
<div id="d2">d2</div>
$(function(){
var j=$("#d1, #d2");
j.filter(":not( #d1 )").css("border","1px solid red");
});
答案 2 :(得分:1)
问题是,操作方法(例如add()
)不会操作对象(集合)就地,但返回更改的集合。因此,您需要将 remove()
not()
的返回值分配回j
:
j.remove("#d1");//not this...
应该是
j = j.not("#d1");//not this...
remove()
与not()
remove()
从DOM(不是集合)中删除匹配的集合,而not()
从给定的匹配中删除匹配的集合,使DOM保持不变。我想你正在寻找not()
。
答案 3 :(得分:0)
使用jQuery grep()函数:
<div id="d1">d1</div>
<div id="d2">d2</div>
<script>
$(function(){
var j=$();
j=j.add("#d1");
j=j.add("#d2");
j = jQuery.grep(arr, function(item){
return item != '#d1';
});
j.css("border","1px solid red");
});
</script>
答案 4 :(得分:0)
尝试以下代码:
j.find("#d1").remove();
如果不是:
j.filter("#d1").remove();