Javascript 在不重新加载嵌入视频的情况下替换部分innerHTML
我有一个id为#test的div,它包含很多html,包括一些youtube嵌入等 在这个div的某个地方有这样一个文本:“[test]” 我需要将该文本替换为“(works!)” 通常的做法当然是:Javascript 在不重新加载嵌入视频的情况下替换部分innerHTML,javascript,innerhtml,Javascript,Innerhtml,我有一个id为#test的div,它包含很多html,包括一些youtube嵌入等 在这个div的某个地方有这样一个文本:“[test]” 我需要将该文本替换为“(works!)” 通常的做法当然是: document.getElementById("test").innerHTML = document.getElementById("test").replace("[test]","(works!)"); 但问题是,如果我这样做,youtube嵌入将重新加载,这是不可接受的 有办法做到这一
document.getElementById("test").innerHTML = document.getElementById("test").replace("[test]","(works!)");
但问题是,如果我这样做,youtube嵌入将重新加载,这是不可接受的
有办法做到这一点吗?您必须针对特定的元素,而不是父块。由于DOM正在更改,视频将被重新绘制到DOM。也许
TextNode(textContent)
会帮助您,文档IE9,其他浏览器也应该支持它更改页面以便
[test]
变成
<span id="replace-me">[test]</span>
如果需要更改多个位置,则使用class
而不是id
,并使用document.getElementsByClassName
迭代返回的元素并逐个更改它们
或者,您可以使用jQuery,这样做更简单:
$('#replace-me').text('(works!)');
现在,使用jQuery进行单一替换可能有些过分,但如果需要更改多个位置(按类名),jQuery肯定会派上用场:)
$('#replace-me').text('(works!)');