如何使用javascript替换div的多次出现的innerHTML?

时间:2017-01-11 14:57:37

标签: javascript html

对于在HTML中多次出现的div:

<div class="myclass">abc</div>
<div class="myclass">abc def</div>
...

如何为所有事件取代“abc”? (我找到了替换第一次出现的资源而不是剩下的资源)

这是我的javascript方法代码

<script>
 function addLoadEvent(func) {
   var oldonload = window.onload;
   if (typeof window.onload != 'function') {
     window.onload = func;
   } else {
     window.onload = function() {
       if (oldonload) {
         oldonload();
       }
       func();
     }
   }
 } 

 addLoadEvent(function() {  

    oldText = document.getElementsByClassName("myclass").innerHTML; 
    for (i = 0; i<oldText.length; i++){ 
    newText = oldText[i].innerHTML;
    newText = newText.replace(/abc/g, "123");
    oldText[i].innerHTML = newText;

    });
</script>

2 个答案:

答案 0 :(得分:3)

这是解决方案:

问题出在这一行:oldText = document.getElementsByClassName("myclass").innerHTML;

.innerHTML方法返回HTML个内容。

您只需按类名获取元素,然后获取nodeList

oldText = document.getElementsByClassName("myclass");

&#13;
&#13;
function addLoadEvent(func) {
   var oldonload = window.onload;
   if (typeof window.onload != 'function') {
     window.onload = func;
   } else {
     window.onload = function() {
       if (oldonload) {
         oldonload();
       }
       func();
     }
   }
 }
 addLoadEvent(function() {  
    oldText = document.getElementsByClassName("myclass"); 
    for (i = 0; i<oldText.length; i++){ 
      newText = oldText[i].innerHTML;
      newText = newText.replace(/abc/g, "123");
      oldText[i].innerHTML = newText;
    }
 });
&#13;
<div class="myclass">abc</div>
<div class="myclass">abc def</div>
&#13;
&#13;
&#13;

答案 1 :(得分:0)

定位每个类,拆分值,删除0索引并连接。

  $('.myclass').each(function(){
       var data = $(this).val();
       var data_array = data.split();
       var new = '';
       for(var i=1; i<data_array.length; i++){
          var _new += ' '+data_array[i];
       }
       $(this).val(_new);
    });