如果数据值为 true,则 jQuery 添加类

标签 jquery html

我试图通过检查当前类是否包含 Data-valueNew 来将类添加到 div。但我不能 100% 确定我是否以正确的方式构建它:

if ($(".link").data("value") === 'New') {
  $(this).addClass('new');
}
<div class="link" data-value="New">
  <a href="">LINK</a>
</div>

基本上,如果data-valueNew,那么将new类添加到link

不确定这是否正确。

最佳答案

问题是因为 if 条件没有 .link 元素的范围,因此 this 实际上引用了 窗口

要解决此问题,您需要直接选择 .link 元素。试试这个:

if ($(".link").data("value") === 'New') {
  $('.link').addClass('new');
}
.new {
  border: 1px solid #C00;
}
<script src="https://ajax.googleapis.com/ajax/libs/jquery/3.3.1/jquery.min.js"></script>
<div class="link" data-value="New">
  <a href="">LINK</a>
</div>

另请注意,这仅适用于 .link 类的单个实例。如果该类有多个元素,则需要单独循环遍历每个元素。你可以这样做:

$('.link').each(function() {
  if ($(this).data("value") === 'New') {
    $(this).addClass('new');
  }
});
.new {
  background-color: #CC0;
}
<script src="https://ajax.googleapis.com/ajax/libs/jquery/3.3.1/jquery.min.js"></script>
<div class="link" data-value="New">
  <a href="">LINK</a>
</div>

<div class="link">
  <a href="">LINK</a>
</div>

<div class="link" data-value="New">
  <a href="">LINK</a>
</div>

关于如果数据值为 true,则 jQuery 添加类,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/50414951/

相关文章:

javascript - 通过ajax发送数据并在node js服务器上获取

jquery找到具有特定类的li并添加另一个类

javascript - D3 Javascript - 这些行不会移动

html - 背景图像未出现。 IE6失败

html - 在同一个标​​签内,文本向左,图像向右

javascript - 隐藏/显示第 n 项后的列表

JavaScript/jQuery – 在输入字段的末尾添加一个字符

javascript - 保留具有相同名称的多个复选框的复选框状态

javascript - 如何获取所有子元素输入

java - 如何在 Java 中解析 HTML 字符串?