Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/443.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
JavaScript函数可以';不要叫两次_Javascript - Fatal编程技术网

JavaScript函数可以';不要叫两次

JavaScript函数可以';不要叫两次,javascript,Javascript,下面的函数基于从API请求接收的数据创建一个表。第一次可以成功地调用它,但之后的任何调用都会导致 未捕获类型错误:contact.src不是HTMLButtonElement.onclick上的函数 职能: let contact = { src: function () { let rawdata = new FormData(document.querySelector('#SrcContactForm')) let data = new FormData() d

下面的函数基于从API请求接收的数据创建一个表。第一次可以成功地调用它,但之后的任何调用都会导致

未捕获类型错误:contact.src不是HTMLButtonElement.onclick上的函数

职能:

let contact = {
  src: function () {
    let rawdata = new FormData(document.querySelector('#SrcContactForm'))
    let data = new FormData()
    data.append('FieldOne', rawdata.get('FindFieldOne'))
    fetch('http://sub.domain.tld/api/v1/contacts/search', {
      method: 'post',
      body: data,
      headers: {
        'Auth-Token': getCookie('Auth')
      }
    })
      .then((resp) => resp.json())
      .then(function (data) {
        console.log(data)
        if (data.success !== true) {
          notif.show('Contacts could not be found.', 'red')
        } else {
          notif.show('Contacts successfully found.', 'green')
          let table = document.createElement('table')
          table.id = 'SrcContactTable'
          table.setAttribute('class', 'table table-bordered table-responsive')
          let thead = document.createElement('thead')
          thead.class = 'text-primary'
          let th1 = document.createElement('th')
          th1.innerHTML = 'ID'
          thead.appendChild(th1)
          table.appendChild(thead)
          for (contact in data.result) {
            let tr = document.createElement('tr')
            tr.id = data.result[contact]['ID']
            let td1 = document.createElement('td')
            td1.innerHTML = data.result[contact]['ID']
            tr.appendChild(td1)
            table.appendChild(tr)
          }
          document.getElementById('table-responsive').appendChild(table)
        }
      })
      .catch(function (error) {
        console.log('Request failed', error)
      })
  }
}
从let更改为var没有什么区别。删除以下行时,可以根据需要多次调用该函数:

let table = document.createElement('table')

但是没有创建表,这违背了函数的目的。

您正在覆盖for循环中的
contact
变量:

var触点={
src:function(){
for(联系人中的联系人。数据){
控制台日志(联系人);
}
},
数据:{
傅:1,,
酒吧:2,
巴兹:3
}
};
contact.src();

console.log(“最终值”,联系人)您正在覆盖for循环中的
联系人
变量:

var触点={
src:function(){
for(联系人中的联系人。数据){
控制台日志(联系人);
}
},
数据:{
傅:1,,
酒吧:2,
巴兹:3
}
};
contact.src();

console.log(“最终值”,联系人)我甚至没有考虑过这一点。非常感谢。一旦我能回答,我会把它标记为答案。@Wolveix-好的经验法则:如果一个错误告诉你一个变量不是你期望的值:
console.log
it找出它是什么。我甚至没有考虑过这个问题。非常感谢。一旦我能回答,我会把它标记为答案。@Wolveix-好的经验法则:如果错误告诉您变量不是您期望的值:
console.log
it来找出它是什么。