Javascript 在<;李>;使用Jquery标记
我需要有关如何在Javascript 在<;李>;使用Jquery标记,javascript,jquery,Javascript,Jquery,我需要有关如何在li标记内搜索的帮助。li列表包含以下格式的员工姓名[姓氏,名字]: Venkata,Anusha Raju,Suma HTML代码: <input type="text" id="comboBox" placeholder="Search.." /> <ul id="userList" class="nobull" style="width: 300px; height: 80px;list-style: none; overflow:auto;
li
标记内搜索的帮助。li
列表包含以下格式的员工姓名[姓氏,名字]:
Venkata,Anusha
Raju,Suma
HTML代码:
<input type="text" id="comboBox" placeholder="Search.." />
<ul id="userList" class="nobull" style="width: 300px; height: 80px;list-style: none; overflow:auto;padding-left:0;">
它运行得很好,但前提是我搜索时使用首字母大写。
有没有办法使搜索不区分大小写,也可以基于名字或姓氏进行搜索?一种可能的方法是使用regx
$(document).ready(function () {
$('#comboBox').bind('keydown keypress keyup change', function() {
// this will hide all your li!!!
$("#userList li").hide();
// define case-insensitive regx
var reg = new RegExp(this.value, "i");
//for each li would you require to match?
$("#userList li").filter(function() {
return reg.test($(this).text());
}).show();
});
});
可以进行不区分大小写的搜索,jQuery允许您添加自己的选择器表达式,我们可以使用它来构建自己的更合理的包含过滤器:示例如下
jQuery.expr[':'].Contains = function(a,i,m){
return (a.textContent || a.innerText || "").toUpperCase().indexOf(m[3].toUpperCase())>=0;
};
这将为选择器添加一个:Contains()(注意大写)选项,该选项的作用与:Contains()相同,但它首先将所有文本转换为大写,然后比较它们。因此,一旦我们将其添加到JavaScript中,我们在listFilter函数中所要做的就是将:contains()替换为contains(),我们有了一种快速、简单、逐步增强的方法来过滤大列表
您可以在搜索功能中引用此链接,
希望这能对您有所帮助。您的代码中的li标记在哪里?无论如何,$(this).text().toLowerCase().indexOf(search.toLowerCase())不起作用…是否有其他方法…首先为搜索文本和li文本设置小写文本,然后警告它或检查两者是否相同。然后试着找到它的索引text@AnushaVinod请接受答案,以便对其他人有用。此问题也可以结束。非常感谢。
jQuery.expr[':'].Contains = function(a,i,m){
return (a.textContent || a.innerText || "").toUpperCase().indexOf(m[3].toUpperCase())>=0;
};