我有一个简单的待办事项列表(<ul>
)。当用户单击<li>
时,textDecoration属性将变为“ line-through”。我希望能够以某种方式“撤消”。这是我的代码...
const lis = document.querySelectorAll('li');
lis.forEach(li => li.addEventListener('click', taskHandler));
function taskHandler(e) {
const li = e.target;
if ((li.style.textDecoration = 'none')) {
li.style.textDecoration = 'line-through';
console.log(`${li.textContent} is done`);
} else {
li.style.textDecoration = 'none';
console.log(`${li.textContent} is undone`);
}
}
我的问题是:为什么else
块不起作用?以及如何解决此代码?
谢谢!
答案 0 :(得分:0)
您使用单个=
赋值运算符进行比较:
if ((li.style.textDecoration = 'none'))
用==
或===
替换它:
if ((li.style.textDecoration == 'none'))
还不确定为什么要使用双(())
括号吗?
if (li.style.textDecoration === 'none')
应该工作正常。