第七色在线视频,2021少妇久久久久久久久久,亚洲欧洲精品成人久久av18,亚洲国产精品特色大片观看完整版,孙宇晨将参加特朗普的晚宴

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

如何在純 JavaScript 的這個簡單的待辦事項應用程序中改進過濾

如何在純 JavaScript 的這個簡單的待辦事項應用程序中改進過濾

達令說 2021-11-04 14:24:14
我正在開發(fā)我的簡單待辦事項應用程序(可以將任務添加到列表中,刪除它并搜索和過濾它)。我有一個問題,因為當我在搜索輸入中寫一些東西時,一切都很好(過濾效果很好)。但是當我刪除字母(退格)或刪除所有文本時,我有沒有任務的空列表。你能改進我的代碼嗎?這是我的代碼:我最近遇到了一個高爾夫卡塔,要求檢查一個字母是否大寫,不超過 9 個字符。用戶的回答有點嚇人(這些例子也適用>于相反的順序):f=s=>s<{}f=c=>c<{}f=_=>_<ff=Z=>Z<f某些變量名稱不適用于f:f=a=>a<ff=z=>z<f將函數(shù)與基本字符串進行比較時,<and>運算符為何以及如何工作?也許指針比較?自己試試:// workingf1=s=>s<{}f2=c=>c<{}f3=_=>_<f3f4=Z=>Z<f4// not workingf5=s=>s<f5console.log('f1', f1('A'))console.log('f1', f1('a'))console.log('f2', f2('A'))console.log('f2', f2('a'))console.log('f3', f3('A'))console.log('f3', f3('a'))console.log('f4', f4('A'))console.log('f4', f4('a'))console.log('f5', f5('A'))console.log('f5', f5('a'))
查看完整描述

1 回答

?
嗶嗶one

TA貢獻1854條經(jīng)驗 獲得超8個贊

問題是你覆蓋了ulwith的內(nèi)容ul.textContent = '';


一種快速的方法是.hidden在您的 中有一個類,如果它們與搜索輸入不匹配css,則將其添加到lis 以隱藏不匹配的結果:


const addInput = document.querySelector('.add input');

const searchInput = document.querySelector('.search input');

const addButton = document.querySelector('.add button');

const ul = document.querySelector('ul');


const taskNumber = document.querySelector('h1 span');

let tasks = 0;


const addTask = (e) => {

  e.preventDefault();

  tasks++;

  let task = addInput.value;

  if (task === '') return;

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

  li.innerHTML = task + " <button> X </button>"

  ul.appendChild(li);

  // console.log(task);

  addInput.value = '';

  taskNumber.textContent = tasks;

  li.querySelector('button').addEventListener('click', deleteTask);



}

const searchTask = (e) => {

  const text = e.target.value.toLowerCase();

  let lis = [...document.querySelectorAll('li')];


  // lis = lis.filter(li => li.textContent.toLowerCase().includes(text));

  // ul.textContent = '';

  lis.forEach(li => li.textContent.toLowerCase().includes(text) ? li.classList.remove('hidden') : li.classList.add('hidden'));

}



const deleteTask = (e) => {

  e.target.parentNode.remove();

  tasks--;

  taskNumber.textContent = tasks;

}




addButton.addEventListener('click', addTask)

searchInput.addEventListener('input', searchTask);

.hidden {

  display: none;

}

<!DOCTYPE html>

<html>


<head>

  <meta charset="UTF-8">

  <meta name="viewport" content="width=device-width, initial-scale=1.0">

  <meta http-equiv="X-UA-Compatible" content="ie=edge">

  <title>To-do app</title>

</head>


<body>

  <form class="add" action=''>

    <input type="text">

    <button>Add</button>

  </form>

  <h1>Numbers of tasks: <span>0</span></h1>

  <ul></ul>

  <form class="search" action=''>

    <input type="search" placeholder="search">

  </form>


</body>

或者,有一個元素數(shù)組,您可以在其中添加 new li,在刪除時將其從該數(shù)組中刪除,并使用它來過濾搜索結果:


const addInput = document.querySelector('.add input');

const searchInput = document.querySelector('.search input');

const addButton = document.querySelector('.add button');

const ul = document.querySelector('ul');

var elements = [];


const taskNumber = document.querySelector('h1 span');

let tasks = 0;


const addTask = (e) => {

  e.preventDefault();

  tasks++;

  let task = addInput.value;

  if (task === '') return;

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

  li.innerHTML = task + " <button id=" + tasks + "> X </button>"

  li.id = tasks;

    

  ul.appendChild(li);

  // console.log(task);

  addInput.value = '';

  taskNumber.textContent = tasks;

  li.querySelector('button').addEventListener('click', (e) => deleteTask(e, tasks));


  elements.push(li);


}

const searchTask = (e) => {

  const text = e.target.value.toLowerCase();

  let lis = [...document.querySelectorAll('li')];


   lis = elements.filter(li => li.textContent.toLowerCase().includes(text));

   ul.textContent = '';

   lis.forEach(li => ul.appendChild(li));

}



const deleteTask = (e, id) => {

  e.target.parentNode.remove();

  elements = elements.filter(el => {

    return +el.id !== id;

  })

  tasks--;

  taskNumber.textContent = tasks;

}




addButton.addEventListener('click', addTask)

searchInput.addEventListener('input', searchTask);

.hidden {

  display: none;

}

<!DOCTYPE html>

<html>


<head>

  <meta charset="UTF-8">

  <meta name="viewport" content="width=device-width, initial-scale=1.0">

  <meta http-equiv="X-UA-Compatible" content="ie=edge">

  <title>To-do app</title>

</head>


<body>

  <form class="add" action=''>

    <input type="text">

    <button>Add</button>

  </form>

  <h1>Numbers of tasks: <span>0</span></h1>

  <ul></ul>

  <form class="search" action=''>

    <input type="search" placeholder="search">

  </form>


</body>


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

添加回答

舉報

0/150
提交
取消
微信客服

購課補貼
聯(lián)系客服咨詢優(yōu)惠詳情

幫助反饋 APP下載

慕課網(wǎng)APP
您的移動學習伙伴

公眾號

掃描二維碼
關注慕課網(wǎng)微信公眾號