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

Replacing the contents of tag with another tag using Java script

本文关键字:替换 另一个 Java 使用 脚本      更新时间:2023-09-26

我想替换标签的值

<h2>..</h2>

与标签的内容

<h3>..<h3>

我这样写剧本,

<!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> 

统治:

在上面的示例中,我想将"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> 

我没有得到确切的输出。我使用了 for 循环,因为我想为每次出现的div 标签执行此操作。

任何人都可以研究一下并建议如何纠正它。

谢谢。

这应该像这样简单:

document.getElementById('demo').innerHTML = document.getElementById('all').innerHTML​;​

编辑:使用新的HTML代码,您可以将所有<h2>替换为<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;
    }
}

jQuery Solution:

$('#demo').html($('#all').html());