javascript - 用标签替换文本

时间:2014-05-13 08:38:25

标签: javascript text replace

我对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>

4 个答案:

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

DEMO: http://jsfiddle.net/5m9Qm/1/

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

DEMO