检查某些文本并添加课程

时间:2013-05-22 15:58:18

标签: javascript jquery contains

如果LI中存在某些文本并且相应地添加一个类,我需要检查jQuery。

这些方面的东西......

if ($('ul li:last-child:contains("this text")').length > 0) {
    $(this).addClass("this");
} else if ($('ul li:last-child:contains("that text")').length > 0)
    $(this).addClass("that");
}

显然,上面的代码不起作用,但希望它接近我所需要的。有谁知道我怎么写这个?

编辑: 以下是adeneo的回答,以下是对我有用的确切代码......

$('.job-result .job-details ul li:last-child').addClass(function() {
    return $(this).text().indexOf('Augusta') != -1 ? 'augusta' : 
           $(this).text().indexOf('Aiken') != -1 ? 'aiken' :
           $(this).text().indexOf('Job') != -1 ? 'jobshop' : '';
});

1 个答案:

答案 0 :(得分:5)

您正在做的是使用长度检查元素是否存在,如果它不存在,则向该元素添加一个类?这不会起作用,因为元素不存在,并且在if / else之类的条件中没有特殊范围,所以this没有意义吗?

如何在addClass()内使用匿名函数来获取范围并检查内容:

$('ul li:last-child').addClass(function() {
    return $(this).text().indexOf('this text') != -1 ? 'this' : 
           $(this).text().indexOf('that text') != -1 ? 'that' : '';
});