如何将类添加到具有特定单词的href标记中? 我想要一个标签的每个实例都有“点击这里”和“更多信息”来添加一个类。
<a href="">click here</a> <a href="">more information</a>
成为:
<a href="" class="arrow">click here</a> <a href="" class="arrow">more information</a>
某些链接上有单词分隔符,导致“contains”数组错过它们:
<a title="Vision and Values" href="/about-us/vision-and-values.aspx">click
here</a>
它不是<br/>
,而是HTML在单独的行中呈现两个单词
答案 0 :(得分:4)
如果您想完全匹配“点击此处”,请使用filter:
$('a').filter(function() {
var text = $(this).text();
return text === 'click here' || text === 'more information';
}).addClass('arrow');
如果您有很多条件,请使用inArray
http://api.jquery.com/jQuery.inArray/:
$('a').filter(function() {
var whitelist = ['click here', 'more information'];
var text = $(this).text();
return $.inArray(text, whitelist) != -1;
}).addClass('arrow');
因为JavaScript将0视为松散等于false(即0 == 假,但是0!== false),如果我们检查是否存在值 在数组中,我们需要检查它是否不等于(或大于) -1
这样,如果你有一个匹配的附加文本,你只需要添加到那个数组。
您也可以使用contains
,但它会匹配click here 2
等内容,基本上是contains
“点击此处”的内容,但不完全相同。
$('a:contains(click here),a:contains(more information)').addClass('arrow');
答案 1 :(得分:1)
使用contains选择器(区分大小写):
$("a:contains('click here')").addClass('arrow');
必须使用JQuery,因为没有CSS3选择器可以做到这一点。
答案 2 :(得分:0)
我认为你可能只需要一个常规循环,例如:
jQuery("a").each(function() {
var elem = jQuery(this);
var html = elem.html();
if (html == "click here" || html == "more information") {
elem.addClass("arrow");
}
});