2013-10-22 86 views
0

我正在學習,使用使用jQuery只插入一個開始標記或結束標記

replaceWith('<section>') 

after('<section>') 

真要插入在每種情況下完整的元素:

<section></section> 

而且使用時結束標記

replaceWith('</section>') 

這樣的呼叫似乎被忽略。

有什麼方法來禁止這種行爲?我需要在DOM中的某個點插入一個開始標記,並在另一個點插入一個結束標記。

wrapAll() 

我也無法上班。我想可能是與被包裹的東西不是所有的兄弟姐妹.....

+0

'wrapAll'可能是正確的解決方案。你可以發佈一個jsfiddle來展示你的問題? –

+0

這是DOM的工作原理。這就是爲什麼有wrap和wrapAll方法,在調用這些函數之前,請確保查詢返回期望的集合。 – undefined

+0

這結束了工作:http://jsfiddle.net/H36UE/1/示例HTML更接近地表示正在遇到的實際DOM樹。 – Conando

回答

0

我不相信jquery會允許這種行爲,因爲這實際上會讓你無效化你的標記。

處理DOM的 - 它把標籤那些組「節點」。他們被歸類爲具有屬性和價值的對象以及依賴於它們的許多其他對象。所以簡單的「移動文本」結束標記的是不是一個理想的效果...

爲什麼不抓住所有的你在你的一半標籤的「中間」要的東西......創建一個新的元素,然後把你的「填充」與附加?是這樣的:

var theFilling = $('ul#theFilling'), 
    theCookieCrust = document.createElement('section'); 

$(theFilling).appendTo($(theCookieCrust)); 

$('ul#theFilling').remove(); 

$(theCookieCrust).appendTo('body'); 
+0

這就是我最終做的:http://jsfiddle.net/H36UE/1/ – Conando

相關問題