仅从jquery选择中删除第一个元素

dyn*_*mic 12 javascript jquery

<div class="box"></div>
<div class="box"></div> <!-- Hide -->
<div class="box"></div> <!-- Hide -->
<div class="box"></div> <!-- Hide -->
Run Code Online (Sandbox Code Playgroud)

我需要隐藏所有这个div而不是第一个div.

我可以这样做:

jQuery('.box').hide();
jQuery('.box').first().show();
Run Code Online (Sandbox Code Playgroud)

有没有办法.box.hide()em 之前从数组中删除第一个?

zch*_*zch 35

jQuery('.box').slice(1).hide()
Run Code Online (Sandbox Code Playgroud)

  • @John要从jquery集中删除第一个元素,你需要使用slice(1)而不是slice(0),slice方法使用从零开始的索引但是新的切片被切片_before_索引.因此,slice(1)将具有索引1(即在第二个元素之前)的元素的集合_before_切片,实际上删除了第一个元素.slice(0)在第一个元素之前剪切,因此它只返回整个原始集合. (7认同)
  • +1表示简单解决方案.注意:"有没有办法删除******",如果你想删除**第一个**你必须使用`.slice(0)`.:-) (3认同)

Raf*_*fay 6

尝试

jQuery('.box').not(':first').hide();
Run Code Online (Sandbox Code Playgroud)

比较:

@TJCrowder是正确的,我建议的代码可以.slice通过@zch的建议进行额外的解析

这里是我的代码的配置文件(0.8毫秒),这里是@ zch的代码(0.53毫秒)的配置文件,看到差异