2017-01-11 112 views
0

對於多次出現在你的HTML一個div:如何使用javascript替換div的innerHTML的多個事件?

<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

從字面上有沒有jQuery的在例子嗎?這是香草的JavaScript,但你也沒有理由加載jquery!這裏的問題究竟是什麼,這是行不通的? – Liam

+0

是的,它不工作,我試圖找到一個很好的方法來替換多次出現的div中的內部文本。也許我混淆了我自己之間的jQuery和JS ... – KillM

+1

你的代碼工作,只是從'document.getElementsByClassName(「myclass」)刪除'.innerHTML'' –

回答

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); 
    }); 
+0

我不認爲OP要jQuery。他不知道它是什麼 – Liam

+2

'new'是一個關鍵字,不能用作變量名稱。 –

3

這裏是溶液:

的問題是在該行:oldText = document.getElementsByClassName("myclass").innerHTML;

.innerHTML方法返回HTML內容。

您只需按類名獲取元素,並獲得nodeList

oldText = document.getElementsByClassName("myclass"); 

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; 
 
    } 
 
});
<div class="myclass">abc</div> 
 
<div class="myclass">abc def</div>

相關問題