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

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

刪除按鈕刪除目標項目之前的項目

刪除按鈕刪除目標項目之前的項目

慕姐4208626 2023-11-12 15:31:17
我一直在創建一個待辦事項列表,每個條目有兩個按鈕,“完成”用于逐行完成的任務,“刪除”用于刪除它。當我刪除第二個項目時,它會刪除第一個項目而不是第二個項目。我怎樣才能解決這個問題?謝謝。這是 HTML<body><header>    <h1>To Do List</h1>    <div class="addItems">        <input type="text" name="text" id="addThis" onfocus="this.value=''">        <input type="button" value="Add" id="addBtn">    </div></header><section class="checkList">    <ul class="list"></ul>    </section>這是JSaddButton.addEventListener('click' , add);function add(){    let input = document.getElementById('addThis').value;    let newLi = document.createElement('li');    newLi.id = "listNewItem";    newLi.style.listStyleType = "none";    newLi.style.backgroundColor = "#f4f4f4";    newLi.style.padding = "10px";    newLi.style.marginBottom = "10px";    newLi.appendChild(document.createTextNode(input));    let deleteBtn = document.createElement('button')    console.log(newLi);    let list = document.querySelector('.list');    list.insertBefore(newLi, list.childNodes[2]);    let delBtn = document.createElement('button');    delBtn.id = "doneButn";    delBtn.className = "delete";    delBtn.setAttribute("onclick" , "done()");    delBtn.appendChild(document.createTextNode("Remove"));    newLi.appendChild(delBtn);    let doneSubBtn = document.createElement('button');    doneSubBtn.id = "alreadyDone";    doneSubBtn.className = "done";      doneSubBtn.setAttribute("onclick" , "finished()");    doneSubBtn.appendChild(document.createTextNode("Done"));    newLi.appendChild(doneSubBtn);}function done(){        let del = document.getElementById('doneButn');        let li = del.parentNode;        li.remove();}function finished(){    let liText = document.getElementById('alreadyDone').parentNode;    liText.style.textDecoration = "line-through";}javascripthtmlCSS
查看完整描述

1 回答

?
MMTTMM

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

您有更多具有相同 ID ( doneButn) 的元素 - 那么第一個元素將成為目標(ID 必須是唯一的)。


使用函數參數告訴 JS 應該定位哪個元素。


delBtn.setAttribute("onclick" , "done(this)");

                                      ^^^^

... 

function done(el){

        //    ^^

    let li = el.parentNode;

        //   ^^

    li.remove();

}


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

添加回答

舉報

0/150
提交
取消
微信客服

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

幫助反饋 APP下載

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

公眾號

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