正如@詹姆斯提到的,如果您試圖刪除多個逗號,則需要使用定義爲全局的正則表達式。但是,就像他所說的那樣,這不應該阻止功能繼續(僅導致calcule
爲NaN
)。
沒有標記很難說出什麼問題,但我懷疑是你的代碼中有一個ReferenceError
,這可能與你正在解析的標記有關(可能不會返回單元格或跨度)。
我重構了你的函數,包括改變你的電話replace()
使用RegExp
並添加了假定的標記;它按預期工作:
JS:
var rows = document.getElementsByClassName('rich-table-row');
document.getElementById('suma').onclick = function() {
var calcule = 0;
var cell, span, text;
for(var i = 1; i < rows.length; i++) {
cell = rows[i].getElementsByClassName('rich-table-cell')[2];
span = cell.getElementsByTagName('span')[0];
text = span.innerText.substring(2).replace(/[,]/g,'');
calcule += Number(text);
}
alert(calcule);
};
HTML
<div class="rich-table">
<div class="rich-table-row">
<div class="rich-table-cell"></div>
<div class="rich-table-cell"></div>
<div class="rich-table-cell">
<span>AB697,871,184</span>
</div>
</div>
<div class="rich-table-row">
<div class="rich-table-cell"></div>
<div class="rich-table-cell"></div>
<div class="rich-table-cell">
<span>AB697,871,185</span>
</div>
</div>
</div>
<button id="suma">SUMA</button>
你確定你的for循環正在執行,甚至是控制進入'suma'函數嗎?你可以在輸入函數suma時通過'console.log();'知道。 另請檢查您的控制檯。 –
控制檯中可能有一個javascript錯誤等着你。 – James
什麼都沒有。檢查您的瀏覽器控制檯是否存在拼寫錯誤...順便說一下,數組基於零 –