假设我具有存储在通过该选择器获得$e
jQuery对象:更优雅/有效的方式来连续获取连续6个DOM元素?
var $e = $("input[type='text'][value='" + v + "']");
v
表示我的.each()
迭代内获得$(this).val()
,但它实际上并不重要,它可以是任何数值。
我想要创建一个包含$e
(其后面的DOM元素)以及$e
之前的6个DOM元素的JQuery元素集合。
函数本身工作完全正常,我使用这个代码每次迭代:
var $e = $("input[type='text'][value='" + v + "']");
$e = $e.add($e.next());
for (i=0;i<6;i++)
$e = $e.add($e.prev());
$e.remove();
我想这是一个有点难以解释,所以看看这个JSFiddle。
我已经将上面的代码包装在一个匿名函数中,该函数绑定到Remove line 2
按钮,该按钮会将固定的v
值传递给我的脚本。
我是JQuery的入门者,甚至在JQuery Selectors page读了一篇好文章之后,我找不到更简单的方法来完成此任务。我认为.siblings()
,或更具体地说JQuery('prev ~ siblings')可以以一种更简单的方式做到这一点,如果我可以指定jquery objects数组的范围,但我不知道如何。
HTML是通过PHP模板生成的,我宁愿避免编辑,所以我会接受不包含给定元素封装在容器/包装器中的答案。
有没有更简单的方法来选择给定的JQuery选择器的6个以前的元素,而没有将它们包装在任何容器或包装?
这是什么>> http://jsfiddle.net/skram/Lf3xm/6/ < <接近你想要的? –
值是不同的,但我看到'.slice(0,6)'似乎是我需要与以前的兄弟姐妹()。 –
它确实删除了之前的6个兄弟姐妹,包括自我权利?这不就是你想要的吗? –