2013-04-12 53 views
0

我有一個IMG使用前()和()後與錨

<img id="dynamic" src="www.google.com.br" /> 

我如何使用前()和()之後的jQuery的方法設置在IMG錨?

像這樣:

$('#dynamic').before('<a href="http://google.com">'); 
$('#dynamic').after('</a>'); 

但是...當我做這樣的事情,jQuery將自動添加錨

<a href="http://google.com"></a> 
<img id="dynamic" src="www.google.com.br" /> 

一些想法的結束標記?

+3

您正在尋找wrap() –

回答

3

jQuery的DOM另外的功能,如appendbeforeafter等不編輯HTML作爲一個字符串,但追加由元素組成有效的DOM片段。這就是爲什麼你不能只追加</a>之類的東西,這會導致DOM無效。

你需要的是你的wrap元素:

$('#dynamic').wrap('<a href="http://google.com"/>'); 
2

嘗試

$('#dynamic').wrap('<a href="http://google.com"/>'); 
3

使用.wrap()代替:

$('#dynamic').wrap('<a href="http://google.com"></a>'); 
4

您不能追加元素的一部分。

$('#dynamic').before('<a href="http://google.com">'); 

生成一個整體元件和

$('#dynamic').after('</a>'); 

生成一個整體元件(或根本沒有,這取決於瀏覽器)。使用.wrap方法。

$('#dynamic').wrap('<a href="http://google.com"></a>');