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)
}
});