Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/477.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 选择jquery元素(特定子元素除外)_Javascript_Jquery_Html - Fatal编程技术网

Javascript 选择jquery元素(特定子元素除外)

Javascript 选择jquery元素(特定子元素除外),javascript,jquery,html,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'>Elemen

这是一个简单的问题,但是,在我发现的任何问题中,我都没有找到一个明确的答案。针对我的具体问题,我修改了一个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>
相反,它删除了每一个li。我做错了什么

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

  • 元素2
  • 元素3
  • 元素4
  • 元素5
小提琴:

使用

编辑 你需要

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

请尝试以下代码:

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

假设您打算继续使用
ul

$("ul li#one").remove();
这是一个

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

function do_crazy_thing(){

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

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

}

do_crazy_thing();
函数做疯狂的事情(){
var removed=$(“ul li#one”).remove();
返回$('
    ')。追加(已删除); } 做疯狂的事;
    这是

    然后如何将新的
    ul
    元素附加到主体…

    $(function(){
        $("ul>li").not($('#one')).empty();
    });
    
    根据您的问题,您的预期产出是:

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


    请尝试下面的JS代码

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

    “此脚本应删除ul元素(第一个li除外)”这毫无意义。如果你移除ul元素,第一个li将去哪里?哪里都没有?我需要返回包含每个元素的ul,而不返回第一个元素。我说“移除”,为了说明,你应该说“返回”,而不是“移除”。您的代码正在删除内容。抱歉,已编辑question@Satpal这正是我所需要的,你有更好的吗:)?谢谢,但我需要返回包含删除的li的ul。删除子元素,然后返回对象。它不起作用,我开始认为我正在寻找的是不可能的。我不想重建一个新的
    ul
    元素,我想选择没有第一个子元素的
    ul
    元素(但不删除它,它只是在该变量中),以便对该
    ul
    元素执行操作。谢谢anyways@Satpal,你很好,但这不管用。我认为没有可能的解决办法。事实上,我通过设置一个简单的代码简化了我的问题,您在这里看到了(ul和li的情况),但是,您建议我的方法无法工作,因为我需要在没有li的情况下为ul设置动画(jQuery animate函数)。如果我给克隆设置动画,它就不会工作,因为只有克隆才会被设置动画。我对你的回答投了赞成票,表示感谢。就我的情况而言,我现在将完全删除该li,执行动画,然后重新添加该li。对不起,我更改了问题,我想返回包含已删除li的ul,而不是简单地删除它们。我的意思是它不起作用,因为它不返回ul元素,它确实删除了它,但这不是我想要的。谢谢,这正是我需要的,你有更好的解决方案吗?你说的“更好”是什么意思?:-)无需删除并重新结束,我希望有一个选择器直接在
    removed
    变量中选择此项:)我恐怕您需要详细说明。你希望最终的结果是什么?不需要的
    li
    元素的选择器只是
    $(“ul li#one”)
    …不,我只希望此输出是一个变量,抱歉,我更改了问题。。对不起clarity@sidney更新了我的答案它不起作用。
    $("ul li#one").remove();
    
    function do_crazy_thing(){
    
      var removed = $("ul li#one").remove();
    
      return $('<ul></ul>').append(removed);
    
    }
    
    do_crazy_thing();
    
    <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)");
    });
    
    var op = $("ul :not(#one)");
    
    $(function(){
       var test= $("ul li").remove("#one");
    });