2011-10-28 28 views
-1
<span>Autre contact :</span> 

<label id="Autre contact :" for="">Autre contact :</label> 

如何將一個跨度轉換爲標籤?並添加一個id和一個for屬性?jQuery變換跨度到標籤並添加屬性

快樂星期五:)

+0

不回答你的問題,但你必須在你的'id'屬性,這使得它無效空間。這是你的意圖嗎? –

+0

-1。你有沒有嘗試過任何東西?這是javascript和jquery獲得的基礎。 – maxedison

回答

3

我認爲這會做你正在尋找的東西。當然也有不同的結果。

//use a jquery selector to grab the span 
var span = $("span"); 

//generate a label object 
var label = $("<label id='Something' for=''>Label Text</label>"); 

//replace the span 
span.replaceWith(label); 
+0

+1:也是一個很好的解決方案 –

3
$('span').replaceWith(function() { 
    var idAndText = $(this).text(); 
    return '<label id="' + idAndText + ' for="">' + idAndText + '</label>'; 
}); 

注意IDS不應包含空格。因此,您可能需要更改HTML或在上述函數中操作ID。

+0

+1:這很好,但我想知道爲什麼noones使用'attr()'函數來分配屬性?任何特定的原因? –

+0

@JamesJohnson我真的沒有理由。 replaceWith函數接受HTML DOM元素,jQuery對象或HTML String。我只是簡單地返回一個HTML字符串以便快速理解 –

0

別人給予類似的解決方案,但這裏有一個稍微不同的方式:

$("#myspan").replaceWith(
    $("<label>").attr({ "id" : "myLabel", "value" : "foo", "for" : "otherElement" }));