這是我在stackoverflow上的第一篇文章。到目前爲止,我總能在這裏找到答案,但這次我不能。jQuery包裝多個獨立於級別的元素
這裏是我的DOM結構:
<div id="elementA">
<div id="elementB"></div>
<div id="elementC">
<div id="elementD"></div>
</div>
<div id="elementE"></div>
</div>
我如何包裝2個或更多選擇「隨機」元素融入到一個包裝容器?如果選定的元素處於不同的級別並且其間還有其他元素,這也應該起作用。更新:所有其他元素的DOM結構不應受影響。
下面的幾個例子:
例1:
我雖然大概是這樣:
var element1 = $('#elementB');
var element2 = $('#elementE');
??? $(element1, element2).myWrap(".wrapper"); ???
結果應該是這樣的:
<div id="elementA">
<div class="wrapper">
<div id="elementB"></div>
<div id="elementC">
<div id="elementD"></div>
</div>
<div id="elementE"></div>
</div>
</div>
2實施例:
元素是在不同的水平。
var element1 = $('#elementD');
var element2 = $('#elementE');
??? $(element1, element2).myWrap(".wrapper"); ???
結果:
<div id="elementA">
<div id="elementB"></div>
<div class="wrapper">
<div id="elementC">
<div id="elementD"></div>
</div>
<div id="elementE"></div>
</div>
</div>
實施例3:超過2個元件:
var element1 = $('#elementD');
var element2 = $('#elementC');
var element3 = $('#elementA');
??? $(element1, element2, element3).myWrap(".wrapper"); ???
<div class="wrapper">
<div id="elementA">
<div id="elementB"></div>
<div id="elementC">
<div id="elementD"></div>
</div>
<div id="elementE"></div>
</div>
</div>
實施例4:不同的樹木:
var element1 = $('#elementD');
var element2 = $('#elementF');
??? $(element1, element2).myWrap(".wrapper"); ???
<div id="elementA">
<div id="elementB"></div>
<div class="wrapper">
<div id="elementC">
<div id="elementD"></div>
</div>
<div id="elementE">
<div id="elementF"></div>
</div>
</div>
</div>
感謝您的幫助提前。
我找不出你想要做的算法。現在,當你調用wrap時,E也在C中循環。但在另一個例子中,當你在D和E上調用wrap時,你不會在B中循環。這是同樣的情況,在同級中循環,但在一種情況下,它的行爲不同。如果你知道一種調和方式,那麼它是可以解決的。 – Nucleon
好吧,我試圖包裝2個元素,無論他們出現在DOM與一個單獨的包裝。意思是,如果它們出現在單獨的樹中,則包裝應該在第一個共同的外部樹中。那有意義嗎?我會再添加一個例子。 – user3312134
我添加了示例4. – user3312134