我有一个id为#test的div,其中包含许多html,包括一些youtube-embeds等。
在这个div中的某个地方有这样的文字:“[test]”
我需要用“(works!)”替换该文本。
这样做的正常方法当然是:
document.getElementById("test").innerHTML = document.getElementById("test").replace("[test]","(works!)");
但问题是,如果我这样做,youtube-embeds会重新加载,这是不可接受的。
有办法做到这一点吗?
答案 0 :(得分:0)
您必须定位特定元素而不是父块。由于DOM正在改变,视频被重新绘制到DOM。
答案 1 :(得分:0)
也许TextNode (textContent)
会帮助你,MSDN文档IE9,其他浏览器也应该支持它
答案 2 :(得分:0)
更改您的网页
[test]
变为
<span id="replace-me">[test]</span>
现在使用以下js来查找和更改
document.getElementById('replace-me').text = '(works!)';
如果您需要更改多个地点,请使用class
代替id
并使用document.getElementsByClassName
并迭代返回的元素并逐个更改。< / p>
或者,你可以使用jQuery,甚至更简单:
$('#replace-me').text('(works!)');
现在使用jQuery进行单一替换可能有点过分,但是如果你需要更改多个地方(通过类名),jQuery肯定会派上用场:)