只是想知道是否可以使用纯Javascript更改HTML标记中尖括号之间的内容
我的意思是所有的内容,不仅是标签名称,不仅是id,不仅是类和所有不同的属性,还有内部的所有内容,甚至是非标准的HTML代码。
一个小例子:
之前
<div id="myID" class="myCLASS" whaterver-content ></div>
Javascript DOM功能
<div id="myID" class="myCLASS" other-content ></div>
我知道标签名称,id和类可以使用JS中的DOM元素对象函数进行修改。对于不在引号内而不是在属性之前的数据,是否有任何好的函数可以做同样的事情?
感谢您的回答。
编辑:我刚刚通过另一种方式提问来看到这个Set attribute without value。但结果是一样的吗?或者会有=&#34;&#34;在属性之后?
答案 0 :(得分:2)
我不喜欢接受的答案。您不应该将HTML作为字符串进行操作。它不安全,性能通常很差。
想象一下whaterver-content
是div中某个地方的实际文本,例如用户输入。当它不应该被取代时它将被替换。
请直接使用DOM操作:
var element = document.getElementById('myID');
element.removeAttribute("whaterver-content");
element.setAttribute("other-content", "");
答案 1 :(得分:1)
如何在元素的replace
属性上使用outerHTML
?
function change() {
document.getElementById('myID').outerHTML =
document.getElementById('myID').outerHTML.replace('whaterver-content','other-content');
console.info(document.getElementById('myID').outerHTML);
}
<div id="myID" class="myCLASS" whaterver-content ></div>
<input type='button' onclick='change();' value='change' />