我有三个元素,我正在为每个元素尝试setAttribute:

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。

关于javascript - setAttribute不变值,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/50510777/

10-11 14:58