2011-09-25 64 views
3

我想獲得一個div的內容,並圍繞它包圍跨度並追加回div。圍繞所有的孩子包圍

從這:

<div> 
<a href="#">12</a> 
Testing 
</div> 

要這樣:

<div> 
<span> 
<a href="#">Hehhehe</a> 
Testing 
</span> 
</div> 

所以,我想這一點:

var span = $(document.createElement('span')); 

var contents = window.jQuery(this).children(); 

span.append(contents); 

window.jQuery(this).append(span); // I am looping here but this is the div 

然而,文本 「測試」 始終是外界跨度!

我怎樣才能讓所有東西都在範圍之內?

回答

1

.children()不包含文本節點。使用.wrapInner在您的元素周圍添加跨度。

+0

感謝羅布,不知道那個函數存在! – Abs

5

這應該做你想要什麼..

$('div').wrapInner('<span>'); 

演示在http://jsfiddle.net/gaby/76ND5/


如果在你的代碼this指div的問題,那麼你需要的是

$(this).wrapInner('<span>'); 
+0

這是完美的!很明顯,我不瞭解許多功能。 – Abs