Javascript 将变量和 elementId 传递给函数

莫加利斯

var ingaveA = {
  stuks: ""
};
var ingaveB = {
  prijs: ""
};
var uitgave = {
  totaal: ""
};

update(ingaveA, "testa", ingaveB, "testb", uitgave, "testc");

function update(refA, argsA, refB, argsB, refC, argsC) {

  refA.stuks = document.getElementById(argsA).value;
  refB.prijs = document.getElementById(argsB).value;
  refC.totaal = refA.stuks * refB.prijs;
  document.getElementById(argsC).value = refC.totaal;
}

ingaveA = ingaveA.stuks;
ingaveB = ingaveB.prijs;
uitgave = uitgave.totaal;
alert("Stuks=" + ingaveA + " Prijs=" + ingaveB + " Totaal=" + uitgave);
<input id="testa" value="10">
<input id="testb" value="6">
<input id="testc" value="">

有没有更好的方法来做到这一点?总是 3 个变量名和 3 个元素。也许使用数组?提前致谢

阿尼克特G

document.getElementById()您可以使用document.querySelectorAll()[id^=test]来选择所有 3 个并将它们放入NodeList(将其视为一个数组)而不是用于每个输入

[id^=test] 意味着每个以 test

您也可以制作一个通用对象,并根据需要更新它,如下所示。

var ingave = {
  ingaveA: {
    stuks: ""
  },
  ingaveB: {
    prijs: ""
  },
  uitgave: {
    totaal: ""
  }
};
var inputs = document.querySelectorAll("[id^=test]");

update(ingave, inputs);

function update(ref, inputs) {
  ref.ingaveA.stuks = inputs[0].value;
  ref.ingaveB.prijs = inputs[1].value;
  ref.uitgave.totaal = ref.ingaveA.stuks * ref.ingaveB.prijs;
  inputs[2].value = ref.uitgave.totaal;
}

var ingaveA = ingave.ingaveA.stuks;
var ingaveB = ingave.ingaveB.prijs;
var uitgave = ingave.uitgave.totaal;
alert("Stuks=" + ingaveA + " Prijs=" + ingaveB + " Totaal=" + uitgave);
<input id="testa" value="10">
<input id="testb" value="6">
<input id="testc" value="">

本文收集自互联网,转载请注明来源。

如有侵权,请联系 [email protected] 删除。

编辑于
0

我来说两句

0 条评论
登录 后参与评论

相关文章