給定兩個有序但不一定是連續的同胞元素,我怎樣才能把html包裹起來呢?給出了兩個元素,將html換成不同的元素?
$(element_a).before("<span class='wow'>");
$(element_b).after("</span>");
上述不起作用,因爲它關閉了我的開標籤,並沒有插入後者。
(兄弟姐妹是對類型和類烏合之衆,所以用片,以幫助這個任務是困難的,但也許我還沒有想通了。)
給定兩個有序但不一定是連續的同胞元素,我怎樣才能把html包裹起來呢?給出了兩個元素,將html換成不同的元素?
$(element_a).before("<span class='wow'>");
$(element_b).after("</span>");
上述不起作用,因爲它關閉了我的開標籤,並沒有插入後者。
(兄弟姐妹是對類型和類烏合之衆,所以用片,以幫助這個任務是困難的,但也許我還沒有想通了。)
如果我正確理解了你的意思,那麼你需要圍繞element_a
和element_b
(含)之間的所有元素進行單一跨度。
的.wrapAll()
method可以做到這一點相當不錯,一旦你弄清楚如何讓所有這些元素連接成一個jQuery對象,但這樣的事情應該工作:
var $els = $(element_a);
$els = $els.add(els.nextUntil(element_b)).add(element_b)
$els.wrapAll("<span class='wow' />");
這始於只包含一個jQuery對象element_a
,然後使用.add()
method和.nextUntil()
method添加element_a
和element_b
之間的所有元素,最後添加element_b
。
$("<span class='wow'></span").appendTo('#container');
$(element_a, element_b).each(function() {
$(this).clone(true).appendTo(".wow");
$(this).remove()
})
關於'.wrap()'的事情是,它將分開包裝每個元素 - 而不是在同一個包裝器中。 – ahren
你是否想要包裹兄弟姐妹之間的元素? (如果它們不是連續的) – ahren
如何確定是否有任何兩個元素應該被視爲異構?你在比較什麼? – Sampson
如果我正確理解你,你想在'element_a'和'element_b'(包括這兩個元素)之間的所有元素上放一個單獨的跨度,並且我已經在這個基礎上給出了答案,但是它可能有幫助你可以提供一些簡單的前後例子html ... – nnnnnn