$(editor[i])[0].outerHTML的值为:

 <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;"', '');

但这并不能取代它。

最佳答案

.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')​;​

10-07 14:31