簡體   English   中英

for循環后的Javascript警報不起作用

[英]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的正則表達式。 但是,就像他說的那樣,這不應阻止函數繼續運行(僅導致calculeNaN )。

沒有標記,很難說出問題所在,但是我懷疑代碼中的某個地方存在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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM