如何从jQuery对象中删除元素?

时间:2010-06-24 08:59:11

标签: jquery

代码:

<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。

谢谢大家! :)

5 个答案:

答案 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>

demo

答案 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();