Javascript setAttribute未更改值

Javascript setAttribute未更改值,javascript,dom,Javascript,Dom,我有三个元素,我正在尝试为每个元素设置属性: const foldable = document.getElementsByClassName('foldable') let result = Array.from(foldable) result.forEach(i => { i.onclick = () => { i.getAttribute('isClicked') ? i.setAttribute('isClicked', false) : i.setAt

我有三个元素,我正在尝试为每个元素设置属性:

const foldable = document.getElementsByClassName('foldable')
let result = Array.from(foldable)
result.forEach(i => {
 i.onclick = () => {
  i.getAttribute('isClicked') 
   ? i.setAttribute('isClicked', false)
   : i.setAttribute('isClicked', true)
 }
})

如果isClicked的值为true,则isClicked应为false,否则如果isClicked的值为false,则isClicked应为true,但它只工作一次。如果isClicked等于false,则isClicked不会更改为true。

您需要将三元运算符更新为以下值

(i.getAttribute('isClicked') === "true")
   ? i.setAttribute('isClicked', false)
   : i.setAttribute('isClicked', true)

因为,如果属性为false,i.getAttribute'isClicked'将给出一个字符串false,该字符串的计算结果为true。

在if语句中,字符串false的计算结果也为true。getAttribute返回一个字符串