0

我试图在我的页面上获取一组 div 并替换其中的一些 html,但我只能得到第一个 DIV。我使用了 getElementsByName 并得到了相同的结果。我确信有一个简单的解决方案,但我找不到。这是我在 jsfiddle 上的代码 - http://jsfiddle.net/Gt4p2/

<html>
<head>
<script>

function repl() {
        var x=document.getElementById("post-content").innerHTML;
        var y=x.replace(/Description/g,"<b>Description</b><br/>");  
        for (var i=0; i<x.length; i++) {
               document.getElementById('post-content').innerHTML=y;
        }
}
    onload = repl;
</script>
</head>
<body>

                    <div id="post-content">
                        <p>Description Power: 1W*3pcs LED color: RGB color deterioration, red, yellow, blue, green, white </p>
                    </div>

                    <div id="post-content">
                        <p>Description Power: 1W*3pcs LED color: RGB color deterioration, red, yellow, blue, green, white </p>
                    </div>
                    <div id="post-content">
                        <p>Description Power: 1W*3pcs LED color: RGB color deterioration, red, yellow, blue, green, white </p>
                    </div>
</body>
</html>
4

2 回答 2

3

使用 getElementsByTagName()。

在你的小提琴中试试这个,它会起作用:

function repl() {
        var x=document.getElementById("post-content").innerHTML;
        var y=x.replace(/Description/g,"<b>Description</b><br/>");
        var divs = document.getElementsByTagName("div");
        for (var i=0; i<divs.length; i++) {
               divs[i].innerHTML=y;
        }
}
repl();

如果您想使用 getElementsByName(),请注意您必须为 DIV 提供“名称”属性,而不是“id”。

于 2013-09-16T21:38:53.983 回答
1

如果您可以更改您的 html 标记,请使用类而不是 id。id 在您的 html 中应该是唯一的

`<div class="post-content">

说明 功率:1W*3pcs LED颜色:RGB变色、红、黄、蓝、绿、白

</div>

var elements = document.getElementsByClassName("post-content");`

元素现在将是一个数组。

于 2013-09-16T21:40:58.450 回答