Я работаю над простым списком дел, и я надеялся, что опытный человек сможет просмотреть мой код в надежде на обратную связь. Я не использую никаких библиотек, потому что не удосужился разобраться в них. Я решил придерживаться простого js.
Спасибо за уделенное время.
Изменить: спасибо за ответ, теперь я изучаю семантику в html и исправляю свой код. 😉
let i = 1;
function myFunction(){
n = i.toString();
let theInput = document.getElementById('input').value;
if(theInput == ""){
return false;
}
else{
let input = `<li class = list id = div${n}>` + theInput +` <button onclick = myFunction2("div${n}")>Done</button>`;
newDiv = document.createElement(`div${n}`);
newDiv.innerHTML = input;
const currentDiv = document.getElementById("div0");
currentDiv.insertBefore(newDiv, currentDiv.nextSibling);
i++;
}
}
const myFunction2 = function(id){
let dou = document.getElementById(id)
dou.remove();
}
const myFunction3 = function(className){
let elements = document.getElementsByClassName(className);
while(elements.length > 0){
elements[0].parentNode.removeChild(elements[0]);
}
}
h1{
font-family: Kufam;
font-size: 50px;
border-color: black;
border-style: solid;
border-width: 12px;
border-radius: 8px;
text-align: center;
}
.list{
font-family: Kufam;
font-size: 25px;
text-align: center;
}<!DOCTYPE html>
<html>
<title>To do List</title>
<header>
<link href="https://fonts.googleapis.com/css?family=Kufam" rel="stylesheet" type="text/css">
<link rel="stylesheet" type="text/css" href="todoliststyle.css">
<script type="text/javascript" src="functionList.js"></script>
<h1>
<br>To do List <br>
<input id="input" type="text" placeholder="what to do" required maxlength="50">
<button onclick="myFunction()" >Add</button>
<button onclick="myFunction3(`list`)">Clear All</button> <br><br>
</h1>
<div id="div0">
</header>
</html> 1 ответ
Кажется, ваше приложение работает 🙂 Хорошая работа, продолжайте! Взгляните на примечания ниже. Попробую добавить чуть позже.
- Относитесь к своему имени переменной как к инструкциям для других разработчиков (и для себя из будущего). Они должны быть описательными. Функция с именем, например
Function2не приемлемы - Ваши входы HTML не имеют связанных ярлыков
- Ты используешь
h1неправильно. Это неправильный тег для размещения ввода. Используйтеdivвместо. H1 используется для определения (только одного) основного заголовка на Вашей странице. Красный о семантике html и значении каждого тега - некоторые из ваших
letпеременные могут быть изменены наconsts. Правило таково — используйтеconstкогда это возможно, а если нет — используйтеlet - Не стилизуйте элементы по именам их тегов, например
h1{}добавьте соответствующий класс к элементу и стилизуйте его с помощью.classNameсинтаксис в вашем CSS - Вместо
onCLickвстроенный прослушиватель событий в вашем HTML Вы можете добавить эту обработку в файл js, используяelement.addEventListener('typeOfEvent', callback) - Добавить описательный
ID'sк элементам —div0абсолютно ничего не значит - Вся ваша логика в
if/elseутверждение. Попробуйте переместить его наружу - Заголовок To DO не должен быть в
brтег. Используйте заголовок илиpвместо - Логика вашего скрипта также может быть улучшена -> я постараюсь описать больше чуть позже
- Вы также можете использовать ярлык для стилей границ
border: 12px solid black
