【发布时间】:2022-01-24 02:35:47
【问题描述】:
希望你们一切都好,好吧..
我在做一个To Do List,我的代码有问题,这几天我一直在尝试解决,没有得到有效的结果..
如果你们和我一起测试sn-p,我敢肯定,那会更多 清晰易懂。
当我点击某个列表元素时,我的 javascript 应该更改或添加 className,并添加一个类调用 'selected'。
因为,当我单击删除按钮时,他们将删除列表中具有“已选择”类列表的所有元素。 (如您在代码中所见)
但是 className a 没有被添加到 first click 中的标签 中,如果我 click 在 /p>
我简化了我的代码,只是为了显示真正的问题: jsfiddle 链接:https://jsfiddle.net/myqrzcs2/ 但是我怎样才能让类被添加,只是在第一次点击,而不是在第二次?const textoTarefa = document.getElementById('texto-tarefa');
const criarTarefa = document.getElementById('criar-tarefa');
const listaTarefas = document.getElementById('lista-tarefas');
criarTarefa.onclick = function click() {
const lista = document.createElement('li');
lista.className = 'lista';
lista.id = 'lista';
lista.tabIndex = '0';
lista.innerHTML = textoTarefa.value;
listaTarefas.appendChild(lista);
document.body.appendChild(listaTarefas);
textoTarefa.value = '';
};
const completedLine = document.querySelector('ol');
function umClick(event) {
if (event.target.tagName === 'LI') {
const listas = document.querySelectorAll('.lista');
listas.forEach((i) => {
i.addEventListener('click', function semNomeDois() {
listas.forEach((j) => j.classList.remove('selected'));
this.classList.add('selected');
});
});
}
}
completedLine.addEventListener('click', umClick);
function removeSelected() {
// teste
const listaSelected = document.querySelectorAll('.selected');
for (let i = 0; i < listaSelected.length; i += 1) {
listaSelected[i].remove();
}
}.lista:focus {
background: red;
}<!DOCTYPE html>
<html>
<head>
<link rel='stylesheet' href='style.css'>
</head>
<body>
<header>
<h1>My List</h1>
</header>
<input id='texto-tarefa' type="text" />
<button id='criar-tarefa' type="submit" onClick='click()'>Add</button>
<ol id='lista-tarefas'>
</ol>
<button id='remover-selecionado' type="submit" onClick='removeSelected()'>Remove Selected (Only One)</button>
<script src="script.js"></script>
</body>
</html>
【问题讨论】:
-
不太清楚你在问什么。
-
很抱歉,你是对的.. 问题是当我点击元素
- 以添加“选定”类时,不起作用,只是在我第二次点击,它是添加的类..我不知道为什么..
-
欢迎来到 StackOverflow。请澄清您的问题,以使其易于理解和回答。另外,您能否尝试在多个浏览器上运行您的代码?并确认问题是浏览器特定问题还是一般问题。
-
好的,我现在会尝试清除更多,感谢您的反馈,并将在不同的浏览器中尝试,只需要几分钟来修复和测试。但是如果尝试使用我的列表,添加和删除它,他们会明白,如果我们这样做可能会更清楚。
-
我测试,问题依旧,我现在编辑。
标签: javascript html css