【问题标题】:Jquery: Loop through each sibling and give each of them a different class?Jquery:遍历每个兄弟并给他们每个人一个不同的类?
【发布时间】:2015-01-01 10:00:26
【问题描述】:

如何循环遍历每个兄弟并为每个兄弟分配不同的类?但是,当一个处于活动状态时,我希望删除兄弟姐妹中的所有类。

现在我得到了这个:

$('.font-size').click(function() {
  $('.font-size.font-size-active').removeClass('font-size-active');
   $(this).addClass("font-size-active");
  });

所以基本上我得到了 3 个字体大小的 div。当用户单击一个按钮时,该按钮会更改背景颜色。到目前为止,我已经开始工作了。然后我想给他们每个人一个独特的附加类,相应地改变字体大小。

我该怎么做?我脑子里有 indexof,但不完全确定它是否有效以及如何在这种情况下使用它。

标记:

<span class="font-size">Small</span>
<span class="font-size">Medium</span>
<span class="font-size">Large</span>

编辑: .small、.medium、.large 类根据点击的按钮添加到 .content div。

【问题讨论】:

  • 您也要发布标记吗?如果您可以将其发布在 jsFiddle 或类似网站上,那就更好了。
  • $('.font-size.font-size-active').removeClass('font-size-active'); 更改为$('.font-size').removeClass('font-size-active');
  • @HanletEscaño 我添加了标记。所以基本上发生的事情是用户点击小,我的 .content div 中的文本变小。如果点击中等大小,一切都会变成中等大小,依此类推。因此,对于第一个字体大小跨度,我在 .content div 第二个 .medium 上应用了一个 .small 类,依此类推。
  • 给他们每个人一个独特的附加类,相应地改变字体大小。您究竟想添加哪些类?
  • @dfsq .small、.medium、.large 类根据单击的按钮添加到 .content div

标签: javascript jquery


【解决方案1】:

我会用要添加的类设置data 属性:

<span class="font-size" data-class="small">Small</span>
<span class="font-size" data-class="medium">Medium</span>
<span class="font-size" data-class="large">Large</span>

然后这样使用:

var $sizes = $('.font-size').click(function () {
    $sizes.removeClass('font-size-active');
    $(this).addClass("font-size-active");
    $('.content').removeClass('small medium large').addClass($(this).data('class'));
});

请看下面的演示。

var $sizes = $('.font-size').click(function () {
    $sizes.removeClass('font-size-active');
    $(this).addClass("font-size-active");
    $('.content').removeClass('small medium large').addClass($(this).data('class'));
});
.font-size {padding: 10px; display: inline-block;}
.font-size-active {background: #EEE;padding: 10px;}
.small {font-size: 80%;}
.medium {font-size: 100%;}
.large {font-size: 120%;}
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>
<span class="font-size" data-class="small">Small</span>
<span class="font-size" data-class="medium">Medium</span>
<span class="font-size" data-class="large">Large</span>

<div class="content">Lorem ipsum dolor sit amet, consectetur adipisicing elit. Laborum molestias expedita quo ipsa enim quasi ea aspernatur rerum dolorum voluptatum saepe voluptate aliquam quibusdam veniam sint asperiores id est nesciunt!</div>

【讨论】:

  • 非常感谢您的帮助。我刚刚学到了一些新东西
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2020-08-04
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2023-03-19
相关资源
最近更新 更多