2012-10-17 64 views
4

$(editor[i])[0].outerHTML的數值爲:變化outerHTML在JavaScript

<p style="color: red;" data-mce-style="color: red;">some string</p> 

我想data-mce-style="color: red;"消失。
我做了這樣的:

$(editor[i])[0].outerHTML.replace('data-mce-style="color: red;"', ''); 

但它不是取代它。

回答

8

.replace創建一個新轉化串;它不會改變原始變量。你只需要創建一個新的字符串,而不是存儲新的字符串返回到outerHTML,如:

$(editor[i])[0].outerHTML = $(editor[i])[0].outerHTML.replace('data-mce-style="color: red;"', ''); 

然而,這只是解決了眼前的問題 - 有好得多的方式來完成你需要比字符串化什麼,重新解析你的<p>元素。由於您使用jQuery的,最明顯的方法是使用removeAttr方法:

$(editor[i]).removeAttr('data-mce-style')​;​ 
+0

這是正確的答案OP的問題,我想。 –

0

嘗試使用jQuery removeData()

$(editor[i]).removeData('mce-style'); 
2

嘗試:

$(editor[i]).removeAttr('data-mce-style') 

http://api.jquery.com/removeAttr/

當然,這將適用於您選擇的所有元素。如果你只是想將其應用到元素0,則使用:

$(editor[i]).first().removeAttr('data-mce-style') 
1
$(editor[i]).removeAttr('data-mce-style')​;​ 

FIDDLE

0

您需要更改/刪除特定的屬性,你需要使用

$(editor[i])[0].removeAttr('data-mce-style'); 

欲瞭解更多信息,請查詢以下鏈接: http://api.jquery.com/removeAttr/

如果您需要更改特定屬性的值,然後執行:

attr(attributeName , value ); 

更多的信息差不多查看以下鏈接: http://api.jquery.com/attr/