如果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' : '';
});
答案 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' : '';
});