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

Javascript 有没有办法避免这种无限循环,javascript,jquery,loops,Javascript,Jquery,Loops,我陷入了一个无限循环,我无法扭转这个问题。我希望有人能帮助我 所以我有两列,一列叫做“常规价格”,第二列叫做“乘数” 我需要检查正常价格是否改变,乘数也必须改变,反之亦然,如果乘数改变,正常价格必须改变 这是我为这个问题找到的最接近的解决方案(虽然有效,但会失效): jQuery('.column-yith\u wcbep\u cf\u multiplicator').bind('domsubtredemodified',function(){ var tabela1=document.getE

我陷入了一个无限循环,我无法扭转这个问题。我希望有人能帮助我

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

我需要检查正常价格是否改变,乘数也必须改变,反之亦然,如果乘数改变,正常价格必须改变

这是我为这个问题找到的最接近的解决方案(虽然有效,但会失效):

jQuery('.column-yith\u wcbep\u cf\u multiplicator').bind('domsubtredemodified',function(){
var tabela1=document.getElementsByClassName(“yith_wcbep_产品”)[0]。行
变量ArrayMultiplicator1=[]
对于(k=1;k
发生的情况是,当我更改其中一列时,另一列也会更改,它变成一个无限循环,控制台充满错误,站点崩溃-

我能做些什么来防止这种情况


谢谢。

有一件事,不管这是否是问题所在,就是循环变量(
k
i
)必须用
let
var
声明。也可以使用jQuery,也可以不使用;将本机domapi与jQuery混合会导致bug。
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)

        
        
    }
});