[英]Javascript alert after for loop is not working
我有以下代碼:
var txt = document.getElementsByClassName('rich-table-row');
document.getElementById("suma").onclick = function suma(){
var calcule = 0;
for(var i = 1; i < txt.length; i++) {
calcule += Number(((txt[i].getElementsByClassName('rich-table-cell')[2].getElementsByTagName('span')[0].innerText).substring(2)).replace(',',''));
}
alert('test');
};
for循環結束后,警報不顯示。 我做錯了什么? 謝謝
如@James所述,如果要刪除多個逗號,則需要使用定義為global的正則表達式。 但是,就像他說的那樣,這不應阻止函數繼續運行(僅導致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>
我認為我設法解決問題...
由於控制台錯誤,我插入了一個這樣的IF,如果(typeof(txt [i] .getElementsByClassName('rich-table-cell')[2])!='undefined')
我認為該錯誤是因為在循環結束的某個地方,我不確定
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.