6

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

但它不会取代它。

4

6 回答 6

9

.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')​;​
于 2012-10-17T12:56:50.880 回答
2

尝试:

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

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

当然,这将适用于选择器中的所有元素。如果您只想将此应用于元素 0,请使用:

$(editor[i]).first().removeAttr('data-mce-style')
于 2012-10-17T12:56:59.057 回答
1

element.setAttribute(attr, null)element.removeAttribute

不需要 outerHTML 和替换。请注意,替换 HTML 将删除事件侦听器(属性事件处理程序除外)。

于 2012-10-17T12:56:54.503 回答
1
$(editor[i]).removeAttr('data-mce-style')​;​

小提琴

于 2012-10-17T12:57:43.267 回答
0

尝试使用 jQuery removeData()

$(editor[i]).removeData('mce-style');
于 2012-10-17T12:55:29.963 回答
0

您需要更改/删除特定属性,因为您需要使用

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

有关更多信息,请查看以下链接: http ://api.jquery.com/removeAttr/

如果您需要更改特定属性的值,请执行以下操作:

attr(attributeName, value);

有关相同的更多信息,请查看以下链接: http ://api.jquery.com/attr/

于 2012-10-17T13:08:26.450 回答