亚洲在线久爱草,狠狠天天香蕉网,天天搞日日干久草,伊人亚洲日本欧美

為了賬號安全,請及時綁定郵箱和手機立即綁定
已解決430363個問題,去搜搜看,總會有你想問的

變量在javascript中突然切換到未定義

變量在javascript中突然切換到未定義

手掌心 2021-12-02 16:49:25
我標記了第三個 console.log - “console.log(elements[i])”。在這一點上,elements[i] 是未定義的,但在此之前它的行為符合預期。任何想法如何/為什么會發生這種情況?function get_all_tasks_within_div(div_id) {  var options = []  var checked_options = []  var elements = document.getElementById(div_id).querySelectorAll('*');  for (i = 0; i < elements.length; i++) {    if (elements[i].getAttribute("name") == "task") {      options.push(elements[i].value)      if (elements[i].checked == true) {        checked_options.push(elements[i].value)      }    }  }  return [options, checked_options]}function create_exhibits_list(deliverable_id) {  exhibits[deliverable_id] = []  var elements = document.getElementsByName("exhibit")  //get all exibits and sort  for (i = 0; i < elements.length; i++) {    try {      console.log(elements[i])      var element_id = elements[i].id;      var exhibit_number = document.getElementById(element_id + "exhibit_number").value;      var exhibit_name = document.getElementById(element_id + "exhibit_name").value;      var responsible_party = document.getElementById(element_id + "responsible_party").value;      var deliverable_type = document.getElementById(element_id + "type").value;      var deliverable_type_options = Array.apply(null, document.getElementById(element_id + "type").options).map(function(el) {        return el.value;      });      var responsible_party_options = Array.apply(null, document.getElementById(element_id + "responsible_party").options).map(function(el) {        return el.value;      });
查看完整描述

1 回答

?
慕村9548890

TA貢獻1884條經驗 獲得超4個贊

您可以使用全局變量i的兩種功能,所以for回路中get_all_tasks_within_div()變化的變量icreate_exhibits_list()。所以當你使用elements[i]調用該函數后,i已經變成了elements數組中不存在的索引。

你應該總是把變量定義成與本地varlet除非您特別需要使用全局變量。


查看完整回答
反對 回復 2021-12-02
  • 1 回答
  • 0 關注
  • 157 瀏覽
慕課專欄
更多

添加回答

舉報

0/150
提交
取消
微信客服

購課補貼
聯系客服咨詢優惠詳情

幫助反饋 APP下載

慕課網APP
您的移動學習伙伴

公眾號

掃描二維碼
關注慕課網微信公眾號