单击时,将类添加到HTML列表中的一个且只有一个元素

蒂亚戈·索萨(Tiago Sousa)

我有一个像这样的清单:

 <ul>
   <li class="item">Item 1</li>
   <li class="item">Item 2</li>
   <li class="item">Item 3</li>
 </ul>

我需要将活动类分别添加到每个项目中,并在单击时将其删除到上一个项目中。

类似于此问题的Vanilla JS从先前的选择中删除了类,但是由于旧的浏览器兼容性,我需要使用For循环而不是ForEach。

我一直在尝试使该答案适合我的示例:

const items = document.querySelectorAll(".item");

for (let i = 0; i < items.length; i++) {
  const item = items[i];
  item.addEventListener("click", addActiveClass);

  for (let i = 0; i < items.length; i++) {
    const item = items[i];
    item.addEventListener("click", removeClass);
  }
}

function removeClass(e) {
  e.target.classList.remove("active");
}

function addActiveClass(e) {
  e.target.classList.add("active");
}

但是它仍然没有按预期工作:(

马特·艾伦(Matt Ellen)

我假设您需要从其余项目中删除活动类,然后更新正确的项目。但是,我不确定classList您要支持的旧版浏览器是否可用。你应该考虑的填充工具为老年人bowsers。

const items = document.querySelectorAll(".item");

for (let i = 0; i < items.length; i++) {
  const item = items[i];
  item.addEventListener("click", changeActiveClass);
}

function changeActiveClass(e)
{
  for (let i = 0; i < items.length; i++) {
    const item = items[i];
    item.classList.remove('active');
  }
  e.target.classList.add('active');
}

本文收集自互联网,转载请注明来源。

如有侵权,请联系[email protected] 删除。

编辑于
0

我来说两句

0条评论
登录后参与评论

相关文章

来自分类Dev

将另一个类中的元素添加到数组列表中

来自分类Dev

如何将一个类添加到一个元素并从所有兄弟元素中删除一个类 angular

来自分类Dev

如何将一个类一个接一个地添加到列表中的每个元素

来自分类Dev

为什么只有第一个元素被添加到div中

来自分类Dev

将一个类添加到所有下一个元素,直到有类的孩子

来自分类Dev

仅当添加了另一个类时,才将类添加到元素中

来自分类Dev

将类添加到悬停时共享类的另一个元素

来自分类Dev

HtmlTextWriter将一个类添加到已具有一个元素的元素

来自分类Dev

如何删除元素列表中的类并添加到另一个元素Jquery?

来自分类Dev

我有一个循环,想用ajax将类添加到最后4个元素中

来自分类Dev

根据R中的另一个列表将元素添加到列表

来自分类Dev

将值添加到上一个列表中的列表更改元素

来自分类Dev

如果下一个元素有一个类,则将HTML添加到div

来自分类Dev

如果下一个元素有一个类,则将HTML添加到div

来自分类Dev

将元素添加到另一个div中时如何从HTML中删除元素

来自分类Dev

使用多个块在页面加载时将文本添加到类中的第一个元素

来自分类Dev

为什么人们在只有一个元素时使用 html 中的类

来自分类Dev

将css类添加到列表项,但jQuery中的最后一个除外

来自分类Dev

AngularJS指令,在单击时添加类,但是如果单击,则将其删除并添加到另一个元素中

来自分类Dev

AngularJS指令,可在单击时添加类,但如果单击,则将其删除并将其添加到另一个元素中

来自分类Dev

将一个xml元素添加到另一个xml中

来自分类Dev

简单的轮播滑块:将类删除到单击的元素,然后将其添加到下一个同级

来自分类Dev

列表只有一个元素

来自分类Dev

如果元素具有类,则将类添加到另一个元素

来自分类Dev

将一个键添加到列表中的所有值

来自分类Dev

jQuery-在单击按钮时将表单上方的元素添加到另一个div

来自分类Dev

输入一个列表中的元素以添加到另一个列表中

来自分类Dev

将一个元素添加到多维数组

来自分类Dev

如何在需要的Android示例中单击将项目从一个列表视图添加到另一个列表视图

Related 相关文章

  1. 1

    将另一个类中的元素添加到数组列表中

  2. 2

    如何将一个类添加到一个元素并从所有兄弟元素中删除一个类 angular

  3. 3

    如何将一个类一个接一个地添加到列表中的每个元素

  4. 4

    为什么只有第一个元素被添加到div中

  5. 5

    将一个类添加到所有下一个元素,直到有类的孩子

  6. 6

    仅当添加了另一个类时,才将类添加到元素中

  7. 7

    将类添加到悬停时共享类的另一个元素

  8. 8

    HtmlTextWriter将一个类添加到已具有一个元素的元素

  9. 9

    如何删除元素列表中的类并添加到另一个元素Jquery?

  10. 10

    我有一个循环,想用ajax将类添加到最后4个元素中

  11. 11

    根据R中的另一个列表将元素添加到列表

  12. 12

    将值添加到上一个列表中的列表更改元素

  13. 13

    如果下一个元素有一个类,则将HTML添加到div

  14. 14

    如果下一个元素有一个类,则将HTML添加到div

  15. 15

    将元素添加到另一个div中时如何从HTML中删除元素

  16. 16

    使用多个块在页面加载时将文本添加到类中的第一个元素

  17. 17

    为什么人们在只有一个元素时使用 html 中的类

  18. 18

    将css类添加到列表项,但jQuery中的最后一个除外

  19. 19

    AngularJS指令,在单击时添加类,但是如果单击,则将其删除并添加到另一个元素中

  20. 20

    AngularJS指令,可在单击时添加类,但如果单击,则将其删除并将其添加到另一个元素中

  21. 21

    将一个xml元素添加到另一个xml中

  22. 22

    简单的轮播滑块:将类删除到单击的元素,然后将其添加到下一个同级

  23. 23

    列表只有一个元素

  24. 24

    如果元素具有类,则将类添加到另一个元素

  25. 25

    将一个键添加到列表中的所有值

  26. 26

    jQuery-在单击按钮时将表单上方的元素添加到另一个div

  27. 27

    输入一个列表中的元素以添加到另一个列表中

  28. 28

    将一个元素添加到多维数组

  29. 29

    如何在需要的Android示例中单击将项目从一个列表视图添加到另一个列表视图

热门标签

归档