使用 jQuery 进行不区分大小写的搜索
Case insensitive search with jQuery
我使用下面的脚本搜索 table 以显示与用户输入匹配的结果。如果您输入大写字母 'K' 并且所需结果以小写字母 'k' 开头,结果将不会显示,因为它与用户 不完全匹配 输入。我如何 select .value()
不区分大小写?
$("#search_input").keyup(function() {
var value = this.value;
$("#table").find(".table_row").each(function(index) {
if (!index) return;
var id = $(this).find(".table_cell").first().text();
$(this).toggle(id.indexOf(value) !== -1);
});
});
您提供的脚本的一部分,按原样比较字符串。最好 lowercase 用户输入和 table 单元格的文本 ID,以便比较两个结果,然后切换您需要的内容。
$("#content").keyup(function() {
var value = this.value.toLowerCase();
$("#table").find(".table_row").each(function(index) {
if (!index) return;
var id = $(this).find(".table_cell").first().text();
if (id.toLowerCase().indexOf(value) !== -1) {
$(this).toggle();
}
});
});
还有一件事要补充。只是好奇,为什么要将字符串比较的结果传递给 toggle ? Toggle 需要两个可选参数:持续时间和完成回调函数。如果您不需要加速或之后做某事,您只需按原样切换即可。
With no parameters, the .toggle() method simply toggles the visibility
of elements
我只需对可搜索元素和用户输入都使用 toLowerCase()
来比较两者的小写值就足够了。
$("#search_input").keyup(function() {
var value = this.value.toLowerCase();
$("#table").find(".table_row").each(function(index) {
if (!index) return;
var id = $(this).find(".column-namelist").first().text();
$(this).toggle(id.toLowerCase().indexOf(value) !== -1);
});
});
我使用下面的脚本搜索 table 以显示与用户输入匹配的结果。如果您输入大写字母 'K' 并且所需结果以小写字母 'k' 开头,结果将不会显示,因为它与用户 不完全匹配 输入。我如何 select .value()
不区分大小写?
$("#search_input").keyup(function() {
var value = this.value;
$("#table").find(".table_row").each(function(index) {
if (!index) return;
var id = $(this).find(".table_cell").first().text();
$(this).toggle(id.indexOf(value) !== -1);
});
});
您提供的脚本的一部分,按原样比较字符串。最好 lowercase 用户输入和 table 单元格的文本 ID,以便比较两个结果,然后切换您需要的内容。
$("#content").keyup(function() {
var value = this.value.toLowerCase();
$("#table").find(".table_row").each(function(index) {
if (!index) return;
var id = $(this).find(".table_cell").first().text();
if (id.toLowerCase().indexOf(value) !== -1) {
$(this).toggle();
}
});
});
还有一件事要补充。只是好奇,为什么要将字符串比较的结果传递给 toggle ? Toggle 需要两个可选参数:持续时间和完成回调函数。如果您不需要加速或之后做某事,您只需按原样切换即可。
With no parameters, the .toggle() method simply toggles the visibility of elements
我只需对可搜索元素和用户输入都使用 toLowerCase()
来比较两者的小写值就足够了。
$("#search_input").keyup(function() {
var value = this.value.toLowerCase();
$("#table").find(".table_row").each(function(index) {
if (!index) return;
var id = $(this).find(".column-namelist").first().text();
$(this).toggle(id.toLowerCase().indexOf(value) !== -1);
});
});