在javascript中更改outerHTML

时间:2012-10-17 12:54:06

标签: javascript jquery

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

但它并没有取代它。

6 个答案:

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

FIDDLE

答案 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/