2009-07-23 130 views
1

我想做什麼:調用卸載功能改變使用Javascript將所有span標籤更改爲標籤標籤?

<span>some content</span> 

<label>some content</label> 

是否有可能改變的跨度標籤與JavaScript的一個標籤,標籤?如果有可能我該怎麼做?

日Thnx,

... DORO

+1

爲什麼你想這樣做? – rahul 2009-07-23 11:04:12

+1

所以我可以添加一個onfocus,它應該可以在opera中工作,但是不會跨度...我需要b/ca用戶可以更改內容b/c contenteditable設置爲true,但是如果更改不完全正確正確的,它需要逆轉到舊的狀態...哦,是的,我一定可以使用標籤的權利,但頁面是動態構建的,我永遠不會知道我得到了什麼,所以當我有一個跨度contenteditable = true,現在我知道如何將它們更改爲標籤,即使在歌劇中,這些標籤也可以工作。好吧,我很希望:) – doro 2009-07-23 12:16:06

回答

2

可以使用replace()。更多信息here

我不是在正則表達式非常好,所以我不能告訴你到底該怎麼寫,而是沿着線的東西:

var divHTML = getElementById("myDiv"); //The div which contains your spans 
divHTML.innerHTML.replace(/<span>/gi, "<label>"); 
divHTML.innerHTML.replace(/<\/span>/gi, "</label>"); 

請不要胸圍我在這雖然:p

編輯:如果你想保持類的名稱,編號和這樣的,你只是離開了直角形支架:

divHTML.innerHTML.replace(/<span/gi, "<label"); 

這將打開<span id="mySpan" class="spans"><label id="mySpan" class="spans">

4

首先,你需要獲得對SPAN參考元素,那麼你可以去替換一個新元素:

HTML:

<span id="something">Content</span> 

的JavaScript:

var span = document.getElementById('something'); 
var label = document.createElement('label'); 
label.innerHTML = span.innerHTML; 
span.parentNode.replaceChild(label, span); 
+0

但我必須給每個跨度我想轉換ID「的東西」,對不對? – doro 2009-07-23 12:05:18

+0

你不會想給多個元素賦予相同的id。但是你可以給所有的跨度你想改變一個類名。然後執行`document.getElementsByClassName(「changeSpan」);`,然後循環遍歷它們並通過J-P在每個元素上運行代碼。 – peirix 2009-07-23 12:13:14

0
document.body.innerHTML = 
    document.body.innerHTML. 
     replace(/<span>/g, '<label>'). 
     replace(/<\/span>/g, '</label>'); 
2

(使用jQuery)如果您需要保持之間的轉換類:

$("span").each(function(){ 
    so_classes = $(this).attr("class"); 
    so_value = $(this).html(); 
    so_newLabel = $("<label></label>").html(so_value); 
    if (so_classes.length > 0) { 
     $(so_newLabel).attr("class",so_classes); 
    } 
    $(this).replaceWith(so_newLabel); 
}); 

<span>Hello World</span> 
<span class="bigger"><strong>Hello World!</strong></span> 
<span class="big blue">Hello, <em>World</em>.</span> 

轉換成該

<label>Hello World</label> 
<label class="bigger"><strong>Hello World!</strong></label> 
<label class="big blue">Hello, <em>World</em>.</label>