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

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

腳本待辦事項列表問題

腳本待辦事項列表問題

楊魅力 2022-09-29 15:48:43
自從我剛剛開始學習JavaScript以來,就試圖為一個項目制作一個待辦事項列表。下面是代碼。function newElement() {  var inputval = document.getElementById('inputnewlist').value;  var li = document.createElement('li');  var lichild = document.createTextNode('inputval');  li.appendchild('lichild');  if (inputval === '') {    alert('you must put something in the textbox!');  } else {    document.getElementById('mylist').appendchild('li');  }  document.getElementById('inputnewlist').value = "";}document.getElementsByClassName('addbutton').addEventListener('click', function() {  newElement();});<div id="formcontainer">  <h2 class="title"> To Do List </h2>  <label for="inputnewlist"> Add To List</label>  <input type="text" name="inputnewlist" id="inputnewlist" placeholder="Add thing to do..">  <button class="addbutton">Add</button></div><ul id="mylist">  <li> hi hehe <span class="exit"> x </span></li></ul>問題是該按鈕根本不執行任何操作。我已經嘗試過使用onclick而不是事件列表,但沒有任何變化。這是怎么回事?老實說,我不明白為什么它不起作用。希望你們能幫上忙!
查看完整描述

2 回答

?
HUWWW

TA貢獻1874條經驗 獲得超12個贊

這里有很多錯誤。但主要問題是返回一個集合而不是單個元素。因此,您需要遍歷該集合才能與元素進行交互:getElementsByClassName


let buttons = document.getElementsByClassName('addbutton');

for (let b of buttons) {

  b.addEventListener('click', function() {

    newElement();

  });

}

除此之外,您還有各種拼寫錯誤,其中使用了不正確的函數名稱(JavaScript區分大小寫,因此應該如此),并且在您打算使用變量(而不是,而不是)的地方使用字符串。appendchildappendChild'li'li'lichild'lichild


我懷疑你的意思是這樣寫的:


function newElement() {

  var inputval = document.getElementById('inputnewlist').value;

  var li = document.createElement('li');

  var lichild = document.createTextNode(inputval);


  li.appendChild(lichild);

  if (inputval === '') {

    alert('you must put something in the textbox!');

  } else {

    document.getElementById('mylist').appendChild(li);

  }

  document.getElementById('inputnewlist').value = "";

}


let buttons = document.getElementsByClassName('addbutton');

for (let b of buttons) {

  b.addEventListener('click', function() {

     newElement();

  });

}

<div id="formcontainer">

  <h2 class="title"> To Do List </h2>

  <label for="inputnewlist"> Add To List</label>

  <input type="text" name="inputnewlist" id="inputnewlist" placeholder="Add thing to do..">

  <button class="addbutton">Add</button>

</div>

<ul id="mylist">

  <li> hi hehe <span class="exit"> x </span></li>

</ul>


查看完整回答
反對 回復 2022-09-29
?
aluckdog

TA貢獻1847條經驗 獲得超7個贊

document.getElementsByClassName返回一個集合,您希望訪問集合中的第一個元素

改變

document.getElementsByClassName('addbutton').addEventListener(...)

document.getElementsByClassName('addbutton')[0].addEventListener(...)

或者您可以使用返回第一個匹配元素的元素querySelector

document.querySelector('.addbutton').addEventListener(...)


查看完整回答
反對 回復 2022-09-29
  • 2 回答
  • 0 關注
  • 90 瀏覽
慕課專欄
更多

添加回答

舉報

0/150
提交
取消
微信客服

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

幫助反饋 APP下載

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

公眾號

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