Javascript 选择jquery元素(特定子元素除外)
这是一个简单的问题,但是,在我发现的任何问题中,我都没有找到一个明确的答案。针对我的具体问题,我修改了一个JSFiddle 我得到了这个小小的密码: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
<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");
});