有没有办法避免这种无限循环

时间:2020-09-29 21:23:33

标签: javascript jquery loops

我陷入无限循环,无法解决这个问题。我希望有人能帮助我。

所以我有两列,一列称为“常规价格”,第二列为“乘数”

我需要检查常规价格是否发生变化,乘数也必须发生变化,反之亦然,如果乘数发生变化,则常规价格必须发生变化。

这是我为这个问题找到的最接近的解决方案(它可以工作,但是死了):

jQuery('.column-yith_wcbep_cf_multiplicador').bind('DOMSubtreeModified', function(){
  var tabela1 = document.getElementsByClassName("yith_wcbep_products")[0].rows
  var arrayMultiplicador1 = []

  
  for (k = 1;  k < tabela1.length -1; k ++){
        var multiplicadorNovo1 = tabela1[k].childNodes[10].innerHTML
        var pvaNovo1 = tabela1[k].childNodes[11].innerHTML
        var regularPriceNovo1 = tabela1[k].childNodes[5].innerHTML
        var numeroPVA1 = Number(pvaNovo1)
        var numeroRegularPrice1 = Number(regularPriceNovo1)
        var numeroMultiplicador1 = Number(multiplicadorNovo1)
        var novoResultado1 = numeroRegularPrice1 / numeroPVA1
        // tabela1[k].childNodes[10].innerHTML = novoResultado;
        var multiplicadorAll1 = tabela1[k].childNodes[10].innerHTML
        arrayMultiplicador1.push(multiplicadorAll1)
        var resultadroRegPrice1 = numeroMultiplicador1 * numeroPVA1
        tabela1[k].childNodes[5].innerHTML = resultadroRegPrice1.toFixed(2)

        
        
    }
});

jQuery('.regular_price').bind('DOMSubtreeModified', function(){
var tabela = document.getElementsByClassName("yith_wcbep_products")[0].rows

    var arrayMultiplicador = []
    var ids = []
    for (i = 1;  i < tabela.length -1; i ++){
        var multiplicadorNovo = tabela[i].childNodes[10].innerHTML
        var pvaNovo = tabela[i].childNodes[11].innerHTML
        var regularPriceNovo = tabela[i].childNodes[5].innerHTML
        var numeroPVA = Number(pvaNovo)
        var numeroRegularPrice = Number(regularPriceNovo)
        var numeroMultiplicador = Number(multiplicadorNovo)
        var novoResultado = numeroRegularPrice / numeroPVA
        tabela[i].childNodes[10].innerHTML = novoResultado;
        var multiplicadorAll = tabela[i].childNodes[10].innerHTML
        arrayMultiplicador.push(multiplicadorAll)
        // var resultadroRegPrice = numeroMultiplicador * numeroPVA
            // tabela[i].childNodes[5].innerHTML = resultadroRegPrice.toFixed(2)

        
        
    }
}); 

发生的事情是,当我更改其中一列时,另一列也发生了变化,并且变成了无限循环,控制台充满了错误,网站崩溃了-https://prnt.sc/uq6wm9

我该怎么做才能防止这种情况?

谢谢。

0 个答案:

没有答案