我在下面的函数中有一个基于两个目标的xmlhttprequest,它来自某些html元素的文本。
我需要做的就是切换目标值,但每次都不在if语句中调用它们。试图遵循DRY方法。
见下文 -
if(whichSym === "1"){
document.getElementById('priceSym' + whichSym).innerHTML = target;
target2 = document.getElementById('priceSym2').innerHTML;
dataControl.getItem(function(err, data) {
uiControl.changeInput("1", data);
}, target, target2);
}
else if(whichSym === "2"){
document.getElementById('priceSym' + whichSym).innerHTML = target;
target2 = document.getElementById('priceSym1').innerHTML;
dataControl.getItem(function(err, data) {
uiControl.changeInput("1", data);
}, target2, target);
}
如果您需要更多背景信息,请与我们联系。
答案 0 :(得分:0)
要遵循DRY原则,您只需将其包装在一个函数中即可。这样的事情应该有效:
function (whichSym) {
const otherSym = whichSym === 1 ? 2 : 1; // assuming values can be only 1 and 2
const target = document.getElementById('priceSym' + whichSym).innerHTML;
const target2 = document.getElementById('priceSym' + otherSym).innerHTML;
dataControl.getItem((err, data) => {
uiControl.changeInput("1", data); // not sure what "1" here means, replace with whichSym if needed
}, target, target2);
}