如何使用字符串的 indexOf 返回的值
How do I work with value returned by indexOf of an string?
我只想对条件返回的值做点什么
{{#each maindata-hold.[2].qa}}
<div class="section">
<a href="javascript:void(0)" class="person-link" id="{{id}}">
<span class="name-role" id="{{id}}">
{{name}} <br> {{role}}
</span>
</a>
</div>
{{/each}}
我只需要它来浏览 html 的这一部分并获取包含值"QA 管理器"的节点之一的值,我就是这样做的
if ($('.person-link').text().toLowerCase().indexOf('qa m') > -1) {
$('.person-link').css('backgroundColor', 'black');
}
但是这样,最后所有节点都获得了黑色背景,我只需要黑色的QA管理器,有什么建议吗?
使用 filter
是一个不错的选择:
$('.person-link').filter(function(){
return $(this).text().toLowerCase().indexOf('qa m') > -1;
}).css('backgroundColor', 'black');
$('.person-link').filter(function(){
return $(this).text().toLowerCase().indexOf('qa m') > -1;
}).css({'background': '#0095ff', 'color': '#fff'});
<script src="https://ajax.googleapis.com/ajax/libs/jquery/1.11.1/jquery.min.js"></script>
<div class="person-link">Project Manager</div>
<div class="person-link">QA Manager</div>
<div class="person-link">Request Manager</div>
如何使用:contains()
选择器
$('.person-link:contains("qa m")').css('background-color', 'red');
编辑(感谢 skobaljik):请注意,此方法区分大小写。为了使它在上述情况下工作,您需要以这种方式扩展jQuery。
我通常会做这样的事情:
$(".person-link").each(function(){
var $item = $(this);
if ( $item.text().toLowerCase().indexOf('qa m') > -1){
$item.css('backgroundColor', 'black');
}
});
这样,它将检查每个索引,如果匹配,则更改单个CSS,而不是所有匹配的类。
你必须
使用.css()
的辅助函数来做到这一点
$('.person-link').css("backgroundColor", function(_,_css){
return this.textContent.toLowerCase().indexOf('qa m') > -1 ? "black" : _css;
});
<script src="https://ajax.googleapis.com/ajax/libs/jquery/1.9.1/jquery.min.js"></script>
<div class="person-link">Project Manager</div>
<div class="person-link" style="color:white">QA Manager</div>
<div class="person-link">Request Manager</div>
相关文章:
- 为什么空数组上的 indexOf 不返回 -1
- 为什么indexOf()在值存在时仍然返回-1
- 如何使用字符串的 indexOf 返回的值
- indexof 为相同的输入返回 -1 和 7
- 返回未捕获类型错误的 Javascript:无法调用未定义的方法 'indexOf'
- jQuery .each 返回 TypeError: 无法调用未定义的方法 'indexOf'
- 测试 indexOf 返回值的最佳做法
- javascript indexOf总是返回-1
- ValueIterator.toArray().indexOf()返回意外结果
- indexOf为数组中存在的值返回-1
- Javascript函数indexOf返回不正确的结果
- indexOf对于document.location始终返回true
- 为什么IndexOf返回-1 ?
- google sheets string.indexOf('string')没有正确返回
- 字符串indexOf总是返回-1
- indexOf返回-1,为什么?
- 数组返回indexOf而不是模式计数
- 返回多个indexOf
- 替换javascript对象中的字段?对于splice和push, splice的indexOf返回-1值
- indexOf()函数总是返回零,即使有相同的字符串