有条件地将类添加到特定元素

时间:2014-05-06 18:18:25

标签: javascript jquery if-statement

我正在尝试编写一个if语句来检查LI元素的html是否与变量匹配,如果匹配,则向该特定li添加一个类。

我的HTML:

<li>One</li>
<li>Two</li>
<li>Three</li>
<li>Four</li>

到目前为止我尝试过:

var x = "Three";
if($('li').html() == x) {
  $(this).addClass("active");
}

期望的结果:

<li>One</li>
<li>Two</li>
<li class="active">Three</li>
<li>Four</li>

5 个答案:

答案 0 :(得分:3)

我想你会想要使用过滤方法:

var x = "Three";
$( "li" ).filter(function( index ) {

   return $(this).html() == x;
}).addClass("active");

答案 1 :(得分:2)

您也可以使用.each()

var x = "Three";
$('li').each(function() {
    if($(this).html() == x) {
        $(this).addClass("active");
    }
});

fiddle

答案 2 :(得分:2)

您需要使用filter方法:

var x = "Three";
$('li').filter(function(){
    return $.trim(this.innerHTML) == x;
}).addClass('active')

答案 3 :(得分:1)

这是一种方式 -

var x = "Three";
$('li').each(function() {
    if( $(this).is(':contains("' + x + '")')) {
        $(this).addClass('active');
    }
});

答案 4 :(得分:0)

试试这个

JSFIDDLE

var x = "Three";
$('li').each(function(i,elem){
    if($(elem).text() == x) {
      $(this).addClass("active");
    }
});