我对javascript搜索的时间不太了解,但没有得到我需要的结果。
我想替换页面加载
<p>---SOMERANDOMTEXT:::</p>
带
<strong>SOMERANDOMTEXT</strong>
与其他许多片段一起播放..
<script type="text/javascript">
window.onload = function() {
function myscript() {
input = '---';
output='New Text';
document.body.innerHTML = document.body.innerHTML.replace(input,output);
}
}
</script>
答案 0 :(得分:1)
以下是使用<p>
标记替换<strong>
代码的快速且简单的方法:
var ps = document.getElementsByTagName('p');
for (var i = ps.length; i--;) {
var strong = document.createElement('strong'),
p = ps[i];
while (p.firstChild) {
strong.appendChild(p.firstChild);
}
p.parentNode.insertBefore(strong, p);
p.parentNode.removeChild(p);
}
如果您需要相应地更改文本,请在while
循环中放置类似的内容:
if (p.firstChild.nodeType === 3) {
p.firstChild.nodeValue = p.firstChild.nodeValue.replace(/[-:]{3}/g, '');
}
答案 1 :(得分:0)
您需要像这样调用myscript
函数 -
window.onload = function() {
myscript();
}
function myscript() {
var input = '---';
var output='New Text';
document.body.innerHTML = document.body.innerHTML.replace(input,output);
}
答案 2 :(得分:0)
您正在声明一个函数myscript
但从未调用它。试试这个(未经测试的)代码:
<script>
window.onload = function(){
var p = document.querySelector('p');
var strong = document.createElement('strong');
strong.innerHTML = 'replaced';
p.parentNode.replaceChild(strong,p);
})
</script>
请注意,这需要现代浏览器。
答案 3 :(得分:0)
您可以使用正则表达式。
尝试:
output = document.body.innerText.replace(/[-:]{3}/g, '');
document.body.innerHTML = document.body.innerHTML.replace(/<p>---.*:::<\/p>/, '<strong>' + output + '</strong>');