2012-12-01 55 views
0

我有一些HTML:jQuery的.append和.prepend問題

<div class="sample"> 
    <span> 
    Text 
    </span> 
</div> 

我想提出一個<a href>周圍的文本。

所以我有一些javascript:

$(".sample span").prepend("<a href='http://www.example.com" target='_blank'>"); 
$(".sample span").append("</a>"); 

但結果是我得到:

<div class="sample"> 
    <span> 
    <a href='http://www.example.com' target='_blank'></a> 
    Text 
    </span> 
</div> 

有趣的是,如果我只是用來代替「新文本」,我得到以下內容:

<div class="sample"> 
    <span> 
    New Text 
    Text 
    New Text 
    </span> 
</div> 

任何想法爲什麼要改變這一點?

+0

試()http://api.jquery.com/wrap/ – frictionlesspulley

回答

3

您可以使用wrapInner方法:

$(".sample span") 
    .wrapInner("<a href='http://www.example.com' target='_blank'></a>"); 

http://jsfiddle.net/Fz3As/

注意,有語法錯誤您的prepend方法,並且您無法將</a>傳遞給用於添加結束標記的方法。這不是這些方法的正確用法。

0

嘗試使用.wrap這

var prepend = "<a href='http://www.example.com' target='_blank'>"; 
var append = "</a>"; 
$(".sample span").html(prepend + $(".sample span").html() + append);