我正在尝试使用jQuery contain
将输入中给出的字符串与div的内容进行比较。
问题是,我希望能够检查是否包含字符串,无论大/小写。
这是我的功能:
$(document).ready(function() {
drawDimensions('dContent');
$('#dSuggest').keyup(function() {
var dInput = this.value;
$(".dDimension:contains('" + dInput + "')").css("display","block");
});
});
因此,如果其中一个.dDimension div包含'Date'而用户按下'd'键,我想显示该项。
有可能吗?
答案 0 :(得分:22)
您可以使用.filter
[docs]:
var dInput = this.value.toLowerCase();
$(".dDimension").filter(function() {
return $(this).text().toLowerCase().indexOf(dInput) > -1;
}).css("display","block");
答案 1 :(得分:1)
您可以通过扩展jQuery来编写自己的选择器。试试这个
$.extend($.expr[':'], {
'containsi': function(elem, i, match, array)
{
return (elem.textContent || elem.innerText || '').toLowerCase()
.indexOf((match[3] || "").toLowerCase()) >= 0;
}
});
使用$(".dDimension:containsi('" + dInput + "')").css("display","block");
答案 2 :(得分:1)
看看this example,他用一个不区分大小写的包含选择器扩展jQuery选择器,他调用containsi,如下所示:
$.extend($.expr[':'], {
'containsi': function (elem, i, match, array) {
return (elem.textContent || elem.innerText || '').toLowerCase().indexOf((match[3] || '').toLowerCase()) >= 0;
}
});
答案 3 :(得分:0)
the jQuery documentation for contains中的最后一条评论提供了适合您的“icontains”实现。
$.expr[':'].icontains = function(obj, index, meta, stack){
return (obj.textContent || obj.innerText || jQuery(obj).text() || '').toLowerCase().indexOf(meta[3].toLowerCase()) >= 0;
};
// Example usage.
$("div:icontains('John')").css("text-decoration", "underline");