gpt4 book ai didi

javascript - 单击时无法创建 "a"元素,随后 classList.toggle() 不起作用

转载 作者:行者123 更新时间:2023-12-01 00:57:48 25 4
gpt4 key购买 nike

我正在制作一个待办事项列表应用程序。您输入一个项目。它被附加到列表中。单击列表中的项目后,它会被划掉。无法使文本可点击,因此无法添加 classList.toggle() 函数来跨列表中的项目。

我尝试创建一个空的“li”元素,并在其中创建一个“a”元素。 (注意:当我们将项目添加到列表中时,所有这一切都会发生)。我想,使用“a”元素,我可以将鼠标悬停在文本上,从而使其可点击并将其连接到 classList.toggle() 函数。

<html>
<head>
<style>
.done
{
text-decoration:line-through;
}
</style>
</head>
<body>
<input type="text" id="user_input">
<ul></ul>

<script>

var input = document.getElemenyById("user_input");

function addingNewList()
{
var li = document.createElement("li");
var tag = document.createElement("a");
tag.appendChild(document.createTextNode(input.value));

li.appendChild(tag);
ul.appendChild(li);

tag.onclick=tag.classList.toggle("done");
}
function input_length()
{
return input.value.length;
}
input.addEventListener("keypress",function(event)
{
if(input_length() >0 && event.which == 13)
{
addingNewList();
}
})
</script>
</body>
</html>

预期的输出应该是,如果用户将“Do Laundry”添加到列表中,它就会添加到列表中。单击“洗衣”后,应该有一条线穿过它,即它应该被交叉。目前,这些项目正在添加,但没有交叉。也没有显示错误消息。

最佳答案

我使它的工作方式与 Saurabh 的答案非常相似,如下所示:

<html>
<head>
<style>
.done
{
text-decoration:line-through;
}
</style>
</head>
<body>
<input type="text" id="user_input">
<ul id="list"></ul>

<script>

var input = document.getElementById("user_input");

function addingNewList()
{
var li = document.createElement("li");
var tag = document.createElement("a");
tag.appendChild(document.createTextNode(input.value));

var ul = document.getElementById("list");

li.appendChild(tag);
ul.appendChild(li);

tag.addEventListener("click",function()
{
toggleClass(this);
})
}

function toggleClass(e) {
e.classList.toggle("done");
}

function input_length()
{
return input.value.length;
}
input.addEventListener("keypress",function(event)
{
if(input_length() >0 && event.which == 13)
{
addingNewList();
}
})
</script>
</body>
</html>

在上面的问题示例中,您在一个地方拼写了 getElementById 错误,并且没有定义 ul。我还添加了切换功能以添加到您需要创建的点击事件中。

关于javascript - 单击时无法创建 "a"元素,随后 classList.toggle() 不起作用,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/56390278/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com