从数据属性获取值并根据该值附加类

时间:2015-05-15 19:29:41

标签: javascript jquery

非常直接。尝试从某些li的数据属性中获取值,具体取决于我想要分配隐藏或活动类的值。这似乎很简单,但如果我没有布尔值的console.log它返回值。当使用布尔值时,它会挂起第一个(或最后一个),并将.is-hidden应用于所有元素。

HTML

<li data-sex="male"></li>
<li data-sex="male"></li>
<li data-sex="female"></li>
<li data-sex="female"></li>
<li data-sex="male"></li>
<li data-sex="male"></li>
<li data-sex="male"></li>

JS / JQuery

$('li').each(function() {
  sex = $(this).data('sex');
  console.log(sex);

  if(sex = "male") {
    $(this).addClass("is-active");
  } else {
    $(this).addClass("is-hidden");
  }
})

3 个答案:

答案 0 :(得分:4)

您需要===而不是=

if(sex === "male") {
    $(this).addClass("is-active");
} else {
    $(this).addClass("is-hidden");
}

您可以使用each和if条件直接使用选择器添加类。

$('li[data-sex=male]').addClass("is-active");
$('li[data-sex=female]').addClass("is-hidden");

答案 1 :(得分:4)

您需要使用=====代替=

if(sex == "male")

答案 2 :(得分:2)

当您使用比较运算符时,您正在使用赋值运算符。

if(sex = "male")

应该是

if(sex == "male")
比较两个值时需要

=====