选择除特定子项之外的jquery元素

时间:2014-06-20 11:09:27

标签: javascript jquery html

这是一个简单的问题,但是,在我发现的任何问题中,我都没有找到明确的答案。我为我的具体问题修改了 JSFiddle

我得到了这个很小的代码:

<ul>
    <li id='one'>Element 1</li>
    <li id='two'>Element 2</li>
    <li id='three'>Element 3</li>
    <li id='four'>Element 4</li>
    <li id='five'>Element 5</li>
</ul>

此脚本应返回 ul元素,但第一个li除外:

$(function(){
    $("ul").not($('#one'))
});

相反,它会删除每一个李。我做错了什么?

编辑:换句话说,我想选择一个选择器,而不删除实际元素(=变量内部)

<ul>
    <li id='two'>Element 2</li>
    <li id='three'>Element 3</li>
    <li id='four'>Element 4</li>
    <li id='five'>Element 5</li>
</ul>

FIDDLE: http://jsfiddle.net/LVUMs/13/

5 个答案:

答案 0 :(得分:3)

使用

$("ul li").not($('#one')).remove();

DEMO

OR

$("ul li:not(#one)").remove();

DEMO 2

修改

你需要

var ulexceptOneLi = $("ul li:not(#one)");

var ulexceptOneLi = $("ul li").not($('#one'));

答案 1 :(得分:0)

试试这段代码:

<强> Fiddle

$(function(){
    $("ul>li").not($('#one')).empty();
});

答案 2 :(得分:0)

假设您打算让ul保持正常:

$("ul li#one").remove();

这里是fiddle ...

如果您想要返回包含已移除元素的ul元素,请尝试以下操作:

function do_crazy_thing(){

  var removed = $("ul li#one").remove();

  return $('<ul></ul>').append(removed);

}

do_crazy_thing();

此处another fiddle ...

Here's然后您将如何将新的ul元素附加到正文...

答案 3 :(得分:0)

<强> Demo Fiddle

根据您的问题,您的预期输出是:

<ul>
    <li id='two'>Element 2</li>
    <li id='three'>Element 3</li>
    <li id='four'>Element 4</li>
    <li id='five'>Element 5</li>
</ul>

查看演示。

编辑:

$(function(){
    var removed = $("ul li:not(#one)");
});

OR

var op = $("ul :not(#one)");

答案 4 :(得分:0)

请尝试以下JS代码

$(function(){
   var test= $("ul li").remove("#one");
});