2014-01-31 93 views
3

我有一個contenteditable區域,當用戶完成編輯時,我會將數據保存到文件。當用戶使用第一個瀏覽器,然後使用另一個瀏覽器時,由contenteditables創建的不同樣式會導致混亂且不兼容的代碼。Javascript JQuery替換標籤

我想知道是否有什麼方法可以替代在Chrome中使用「標準」標籤(例如<b>xxx</b>)創建的<span style="font-weight:bold">XXX</span>標籤。

在此先感謝

回答

4

你可以試試這個:所以

$('span').each(function(){ // iterate to the all the spans 
    if($(this).css('font-weight') == 'bold'){ // check if font is bold 
     $(this).contents().unwrap().wrap('<b></b>');​ 
    } // unwrap the content and wrap it 
}); 

,這裏什麼事情是:

  1. 迭代通過你的文檔中的所有跨度
  2. 檢查,如果CSS樣式是「大膽」
  3. 如果爲true,則首先解開其持有的內容,並與您選擇的標籤包裝它

如此類似,您必須單獨檢查所有其他css樣式並相應地替換/包裝它。

+0

謝謝,每個命令都需要一個新的if,但應該沒問題。 – StorySystems

+0

很高興,如果這對你有幫助。 – Jai

1

用途:

$('span').each(function(){ // iterate to the all the spans 
    if($(this).css("font-weight") == "bold"){ // 
    $(this).contents().unwrap().wrap('<b></b>');​ 
} 
}); 

Working Demo

+1

我需要用b標記替換粗體,用u等下劃線替換。我看不到這些代碼如何區分這些差異 – StorySystems

+0

@StorySystems:沒有閱讀那部分。現在更新了代碼和演示。 –