从缓存的jQuery选择器中移除元素

4
这应该不难,但出于某种原因我却有些困难。
我想从缓存的ul中删除第一个li:
var $selection = jQuery('.list').filter('.exclude');

.

<ul class="list">
  <li class="exclude" >Do not Include</li>
  <li>2</li>
  <li>3</li>
</ul>

如何在不包括第一个子li元素的情况下捕获整个ul对象?

谢谢

编辑:所需的jQuery对象是:

<ul class="list">
  <li>2</li>
  <li>3</li>
</ul>

不要这样写:

  <li>2</li>
  <li>3</li>

“捕获整个ul”是什么意思?您是否试图创建一个 $selection 作为一个 jQuery 对象,其中只包含没有“exclude”类的 li 元素?或者 jQuery 对象还应该包含 ul 元素本身吗? - nnnnnn
具有UL元素本身的jQuery对象。我希望它返回一个不包括特定子LI的UL..换句话说,我不希望它只返回孤立的LI元素..希望这样说得清楚吗? - Jose Browne
实际上,不是这样的。如果你说 jQuery(".list"),你会得到一个 jQuery 对象,其中只有一个元素,即 ul 元素 - 请注意,这是对实际 DOM 元素的 _引用_,因此您仍然可以使用遍历方法来访问相关的 li 元素,但是没有任何 li 元素将包含在 jQuery 对象本身中。如果您希望 jQuery 对象包含 ul 元素和 lis(除了 "exclude"),则可以说 jQuery(".list,.list li:not(.exclude)")jQuery(".list").add(".list li:not(.exclude)") - nnnnnn
刚刚尝试了你建议的解决方案...它们都返回带有li元素的原始ul(确实不包括.exclude)添加在ul之外..不是我想要的结果..我会稍微编辑一下我的问题..我现在看到我解释得不好..对此抱歉。 - Jose Browne
你是想通过删除“exclude”元素来更新页面上显示的内容吗?还是复制原始列表并将其附加到页面上,以便您同时看到两个列表(一个包含三个li元素,另一个包含两个)?我仍然感到困惑,因为您所描述的“jQuery对象”实际上更像是HTML片段... - nnnnnn
是的,我对JavaScript和jQuery真的很陌生,所以对于造成的混乱我感到抱歉。非常感谢您的帮助! - Jose Browne
2个回答

6

这确实很有效,我实际上已经解决了我的问题... 但是,我仍然很好奇... 如何让它返回整个ul。所以我想像这样获取整个ul:jQuery('.list') 然后删除第一个子元素(.exclude)并返回整个ul。 - Jose Browne
1
@JoseBrowne $('.list li').remove('.exclude'); DEMO: http://jsbin.com/onidus/2/edit 抱歉,我没有看到你的晚编辑。 - Roko C. Buljan

4

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接