假設我具有存儲在通過該選擇器獲得$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個兄弟姐妹,包括自我權利?這不就是你想要的嗎? –