我有一个函数从一组输入字段获取输入并将它们存储为如下对象:
getinput:function () {
return{
type:document.querySelector(domstring.type).value,
description:document.querySelector(domstring.description).value,
value:document.querySelector(domstring.value).value,
heading:document.querySelector(domstring.heading).innerHTML,
}
},
这里domstring是另一个包含目标字段的类名的对象。 现在我写了一个clearfields函数,我想要做的是访问类型对象,它是document.querySelector(domstring.type).value并将其设置为""所以这个值被清除。这里基本的iife被称为UIcontroller,因此我作为UIcontroller.getinput()进行访问。 所以UIcontroller看起来像这样:
var UIcontroller=(function (){
domstring={
type:'.add__type',
description:'.add__description',
value:'.add__value',
add__btn:".add__btn",
heading:".icome__title",
income_section:".income__list",
expense_section:".expenses__list"
}
return{
getinput:function () {
return{
type:document.querySelector(domstring.type).value,
description:document.querySelector(domstring.description).value,
value:document.querySelector(domstring.value).value,
heading:document.querySelector(domstring.heading).innerHTML,
}
},
getdom:function () {
return domstring
},
display:function (r,type) {
var html,newHTML,element;
if (type=='inc') {
element=domstring.income_section;
html="<div class='item clearfix' id='income-0'><div class='item__description'>%description%</div><div class='right clearfix'><div class='item__value'>%valu%</div><div class='item__delete'><button class='item__delete--btn'><i class='ion-ios-close-outline'></i></button></div></div></div>";
}
else {
element=domstring.expense_section;
html="<div class='item clearfix' id='income-0'><div class='item__description'>%description%</div><div class='right clearfix'><div class='item__value'>%valu%</div><div class='item__delete'><button class='item__delete--btn'><i class='ion-ios-close-outline'></i></button></div></div></div>";
}
newHTML=html.replace("%description%",r.description);
newHTML=newHTML.replace("%valu%",r.valu);
document.querySelector(element).insertAdjacentHTML('beforeend',newHTML);
},
clearfields:function () {
console.log("Clear");
UIcontroller.getinput().description="";
console.log(UIcontroller.getinput().description);
document.querySelector(domstring.value).value="";
}
}
})();
我尝试了以下方式:
clearfields:function () {
console.log("Clear");
//first one
UIcontroller.getinput().description="";
//second one
document.querySelector(domstring.value).value="";
} 我知道第一个和第二个基本上是相同的权利,但第一个不设置为空,但第二个工作正常。 有人可以解释一下。