gpt4 book ai didi

javascript - 函数不会更新变量

转载 作者:行者123 更新时间:2023-12-02 22:46:34 26 4
gpt4 key购买 nike

变量 status 设置为“uncheck”,需要使用 change() 函数更新为“done”。

最终需要发生什么当按下 id randomIdTwo 的按钮时,将调用completeTodo()函数,这会导致列表项从其当前的div“列表”中删除,并附加到div中“complete-list”,change() 函数将“status”变量的值从“uncheck”更新为“done”。

除了 change() 函数之外,一切正常。

document.getElementById('button').addEventListener('click', function addTodo() {
var value = document.getElementById('input').value;
var status = "uncheck";
var randomId = Math.random();
var randomIdTwo = Math.random();

function change() {
status = "done";
};

const item = `<li>
<div class="item">
<div class="complete">
<button id="` + randomIdTwo + `" class="${status}"></button>
</div>

<p class="text">${value}</p>

<div class="remove">
<button id="` + randomId + `" class="todo"></button>
</div>
</div>
</li>`;
const position = "beforeend";

list.insertAdjacentHTML(position, item);
document.getElementById(randomId).addEventListener('click', function removeTodo() {
var item = this.closest('li');
item.remove();
});
document.getElementById(randomIdTwo).addEventListener('click', function completeTodo() {
var item = this.closest('li');
item.remove();
document.getElementById("completelist").appendChild(item);
change();
});
});
<!DOCTYPE html>
<html lang="en" dir="ltr">

<head>
<meta charset="utf-8">
<title></title>
<link rel="stylesheet" type="text/css" href="Resources/CSS/reset.min.css">
<link rel="stylesheet" type="text/css" href="Resources/CSS/style.css">
</head>

<body>
<div class="container">
<header>
<div id="datetime"></div>
<div id="ampm"></div>
<input type="text" id="input" placeholder="Add an item" />
<button id="button" type="button"><img src="./img/additem4.png"></button>
</header>
<div id="list">
</div>

<div id="divline"></div>

<div id="completelist">
</div>
</div>
<script src="resources/JS/app.js"></script>
</body>

</html>

最佳答案

更改 status 变量不会更改元素的类。您需要更新按钮的 classList

document.getElementById('button').addEventListener('click', function addTodo() {
var value = document.getElementById('input').value;
var status = "uncheck";
var randomId = Math.random();
var randomIdTwo = Math.random();

function change(button) {
button.classList.add("done");
button.classList.remove("uncheck");
};

const item = `<li>
<div class="item">
<div class="complete">
<button id="` + randomIdTwo + `" class="${status}"></button>
</div>

<p class="text">${value}</p>

<div class="remove">
<button id="` + randomId + `" class="todo"></button>
</div>
</div>
</li>`;
const position = "beforeend";

list.insertAdjacentHTML(position, item);
document.getElementById(randomId).addEventListener('click', function removeTodo() {
var item = this.closest('li');
item.remove();
});
document.getElementById(randomIdTwo).addEventListener('click', function completeTodo() {
var item = this.closest('li');
item.remove();
document.getElementById("completelist").appendChild(item);
change(this);
});
});
<!DOCTYPE html>
<html lang="en" dir="ltr">

<head>
<meta charset="utf-8">
<title></title>
<link rel="stylesheet" type="text/css" href="Resources/CSS/reset.min.css">
<link rel="stylesheet" type="text/css" href="Resources/CSS/style.css">
</head>

<body>
<div class="container">
<header>
<div id="datetime"></div>
<div id="ampm"></div>
<input type="text" id="input" placeholder="Add an item" />
<button id="button" type="button"><img src="./img/additem4.png"></button>
</header>
<div id="list">
</div>

<div id="divline"></div>

<div id="completelist">
</div>
</div>
<script src="resources/JS/app.js"></script>
</body>

</html>

关于javascript - 函数不会更新变量,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/58381080/

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