$(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;"', '');
但它并没有取代它。
答案 0 :(得分:9)
.replace
创建一个 new 转换后的字符串;它不会改变原始变量。您只是创建一个新字符串而不是将新字符串存储回outerHTML
,例如:
$(editor[i])[0].outerHTML = $(editor[i])[0].outerHTML.replace('data-mce-style="color: red;"', '');
然而,这只能解决您当前的问题 - 除了字符串化和重新解析您的<p>
元素之外,还有更好的方法来完成您的需要。由于您使用的是jQuery,最明显的方法是使用removeAttr
方法:
$(editor[i]).removeAttr('data-mce-style');
答案 1 :(得分:2)
尝试:
$(editor[i]).removeAttr('data-mce-style')
http://api.jquery.com/removeAttr/
当然这适用于选择器中的所有元素。如果您只想将其应用于元素0,请使用:
$(editor[i]).first().removeAttr('data-mce-style')
答案 2 :(得分:1)
element.setAttribute(attr, null) 要么 element.removeAttribute
不需要outerHTML和替换。请注意,替换HTML将删除事件侦听器(属性事件处理程序除外)。
答案 3 :(得分:1)
$(editor[i]).removeAttr('data-mce-style');
答案 4 :(得分:0)
尝试使用jQuery removeData()
:
$(editor[i]).removeData('mce-style');
答案 5 :(得分:0)
您需要更改/删除特定属性,因为您需要使用
$(editor[i])[0].removeAttr('data-mce-style');
了解更多信息,请查看以下链接: http://api.jquery.com/removeAttr/
如果您需要更改特定属性的值,请执行以下操作:
attr( attributeName , value );
有关相同检查以下链接的更多信息: http://api.jquery.com/attr/