使用Java脚本将标记的内容替换为另一个标记

Pat*_*tan 0 javascript

我想替换标签的值

<h2>..</h2>
Run Code Online (Sandbox Code Playgroud)

与标签的内容

<h3>..<h3>
Run Code Online (Sandbox Code Playgroud)

我写了这样的剧本,

<!DOCTYPE html>
<html>
<body>
<div>
            <h3><span><!-- Start Component Field: {"XPath":"tcm:Content/custom:Content/custom:addwidget[1]/custom:text[1]"} -->
                        <strong>Section Text</strong>
                    </span> </h3>

                <h2>
                        <a title="Google" href="http://google.com">google.com</a>
                    </h2>
            </div>  

        <script type="text/javascript">
        var x=document.getElementsByTagName("div");

        for (var i=0; i<x.length; i++) {
        var children = x[i].getElementsByTagName('h2');

        var demo= children["demo"].innerHTML;


        var childd =x[i].getElementsByTagName('h3');

        var all=childd["all"].innerHTML;



        children["demo"].childNodes[0].innerHTML=all;
        childd["all"].innerHTML=null;
        }

        </script>

</body>
</html> 
Run Code Online (Sandbox Code Playgroud)

规则:

在上面的示例中,我想将"google.com"替换为<h3>标记中的文本.但我没有得到输出.

需要输出.

    <!DOCTYPE html>
<html>
<body>
<div>

                <h2>
                        <a title="Google" href="http://google.com">
                        <span><!-- Start Component Field: {"XPath":"tcm:Content/custom:Content/custom:addwidget[1]/custom:text[1]"} -->
                            <strong>Section Text</strong>
                        </span> 
                        </a>
                    </h2>
            </div>  


</body>
</html> 
Run Code Online (Sandbox Code Playgroud)

我没有得到确切的输出.我已经使用了循环,因为我想在每次出现div标签时都这样做.

任何人都可以调查并建议如何纠正它.

谢谢.

Roc*_*mat 6

这应该很简单:

document.getElementById('demo').innerHTML = document.getElementById('all').innerHTML?;?
Run Code Online (Sandbox Code Playgroud)

编辑:使用您的新HTML代码,您可以用这样<h2>的替换所有s <h3>.

var divs = document.getElementsByTagName('div');
for(var i = 0, len = divs.length; i < len; i++){
    var div = divs[i],
        h2 = div.getElementsByTagName('h2'),
        h3 = div.getElementsByTagName('h3');

    if(h2.length === 1 && h3.length === 1){
        h2[0].innerHTML = h3[0].innerHTML;
    }
}
Run Code Online (Sandbox Code Playgroud)

  • @ User222:每次出现什么?ID是唯一的,因此只有一次出现(这就是您的示例所示).你的HTML*真的*看起来像什么? (2认同)