为什么输入字段没有被清除

时间:2018-04-19 19:54:25

标签: javascript iife

我有一个函数从一组输入字段获取输入并将它们存储为如下对象:

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="";

} 我知道第一个和第二个基本上是相同的权利,但第一个不设置为空,但第二个工作正常。 有人可以解释一下。

0 个答案:

没有答案