如何修复<李>其中用户可以使用大写或小写
how to fix search in <LI>where users can use caps or lowercase?
下面是我用于搜索查询的JavaScript,我发现了一个错误,即字母大写或小写的问题。如果列表中的字母是小写字母,那么它只搜索小写字母,但如果你打开大写字母,它什么也找不到。以下是我正在使用的代码。如有任何帮助,我们将不胜感激。
HTML
<input type='search' id='search' placeholder='search'>
<ul>
<li>example 1</li>
<li>example 2</li>
<li>example 3</li>
</ul>
JavaScript
var search = $("#search");
var listItems = $("li");
search.on("keyup", function () {
var terms = search.val();
if (terms == '') {
listItems.show();
} else {
listItems.hide();
$("li:contains('" + terms + "')").show();
}
});
您可以将terms
设置为小写,然后进行搜索。
var terms = search.val().toLowerCase();
您可以覆盖现有的jquery contains
:
jQuery.expr[':'].contains = function(a, i, m) {
return jQuery(a).text().toUpperCase()
.indexOf(m[3].toUpperCase()) >= 0;
};
var search = $("#search");
var listItems = $("li");
search.on("keyup", function () {
var terms = search.val();
if (terms == '') {
listItems.show();
} else {
listItems.hide();
$("li:contains('" + terms + "')").show();
}
});
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>
<input type='search' id='search' placeholder='search'>
<ul>
<li>example 1</li>
<li>example 2</li>
<li>example 3</li>
</ul>
或者创建一个新的:
jQuery.expr[':'].ncontains = function(a, i, m) {
return jQuery(a).text().toUpperCase()
.indexOf(m[3].toUpperCase()) >= 0;
};
var search = $("#search");
var listItems = $("li");
search.on("keyup", function () {
var terms = search.val();
if (terms == '') {
listItems.show();
} else {
listItems.hide();
$("li:ncontains('" + terms + "')").show();
}
});
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>
<input type='search' id='search' placeholder='search'>
<ul>
<li>example 1</li>
<li>example 2</li>
<li>example 3</li>
</ul>
您可以使用toLowerCase:
//elsewhere case may vary but here only case is ignored
$("li:contains('" + terms.toLowerCase() + "')").show();
当你考虑在代码的其他地方使用这个时:
//elsewhere case is ignored by transforming lowercase terms to search for
var terms = search.val().toLowerCase();
相关文章:
- 我可以使此幻灯片图像自动播放吗?
- HTML/JavaScript拖动&Drop-是否可以使重影图像*NOT*看起来'冲洗掉'
- 可以使 jquery 点击事件在所有其他点击事件之后执行
- 是否有一个Javascript函数可以使代码在运行时延迟
- 是否可以向用户发送javascript代码's浏览器安全
- 有什么方法可以使页面无法刷新吗
- 使用chrome.downloads.download,是否可以使文件不弹出下载栏
- javascript是否有一个选项可以使句点与任何字符匹配,包括换行符
- 有一种方法可以使jslint在使用控制台时显示警告或错误
- 有没有任何方法可以使<选择>转到url
- JavaScript可以根据用户输入创建一个新函数
- 有没有任何方法可以使这个名称生成循环运行最短的秒数
- JSXGraph 中有什么方法可以使图像不透明
- 有没有一种方法可以使Iframe根据需要进行扩展
- 有没有什么方法可以测试用户是否在WindowsXP上
- 您可以确定用户是否使用嵌入脚本登录到Yammer吗
- 是否可以使find()和findOne()方法只返回模式字段
- 是否可以阻止用户使用地址栏提交表单
- 我可以向用户隐藏Javascript中的一些代码吗?
- 当用户在网页上选择一大块文本时,是否有一种方法可以使该文本保持高亮显示,即使用户在该页面的其他地方单击也是如此