从 jquery/javascript 中字符串的第一个字符过滤表数据
Filter table data from first character of string in jquery/javascript
我有一个表格,里面有一些记录和一个文本框。我想根据在 keyup 事件文本框中输入的字符串过滤表数据。
目前我正在使用一个代码块来过滤表数据,但它搜索表中存在于字符串中任何地方的记录。
例如:- 如果我在文本框中输入"ab",它会使用包含关键字"ab"的字符串过滤表记录,如 abcd、babd、cdab 等。
但我的要求是当我在文本框中输入关键字"ab"时,它只搜索那些以"ab"开头的字符串,如 abcd、abdc 等。
这是我当前的代码:-
function Search_Gridview(strKey, strGV) {
var strData = strKey.value.toLowerCase().split(" ");
var tblData = document.getElementById(strGV);
var rowData;
for (var i = 1; i < tblData.rows.length; i++) {
rowData = tblData.rows[i].cells[3].innerHTML;
var styleDisplay = 'none';
for (var j = 0; j < strData.length; j++) {
if (rowData.toLowerCase().indexOf(strData[j]) >= 0)
styleDisplay = '';
else {
styleDisplay = 'none';
break;
}
}
tblData.rows[i].style.display = styleDisplay;
}
}
请帮助大家...
您可以使用 jQuery 过滤包含以 "ab" 开头的字符串的列:
var re = $("#TABLE_ID td").filter(function(i){ return this.innerHTML.startsWith("ab") })
//You can after, get the values of each td of the result of this way
re.map(function(i){return this.innerHTML})
您可以使用RegExp的测试方法。
var stringData = [
'aaa', 'aab', 'aac',
'aba', 'abb', 'abc'
];
var searchPrefix = 'ab';
var result = stringData.filter(function (str) {
// return true if str has prefix with searchPrefix.
return (new RegExp('^' + searchPrefix)).test(str);
});
console.log(result);
JavaScript Regexp 参考
这似乎是最优雅的解决方案。
将搜索行为从"存在于数据中的任何位置"更改为"数据以 "开头。您只需要在原始代码的一行上更改一个字符,仅此而已。
从这里更改此行..
if (rowData.toLowerCase().indexOf(strData[j]) >= 0)
成这个...
if (rowData.toLowerCase().indexOf(strData[j]) == 0)
它的作用是强制 indexOf() 解决零问题,而不是允许中间字符串匹配。
下面是用于复制和粘贴到项目中的完整(已修改)代码,例如 html 表过滤器。
function Search_Gridview(strKey, strGV) {
var strData = strKey.value.toLowerCase().split(" ");
var tblData = document.getElementById(strGV);
var rowData;
for (var i = 1; i < tblData.rows.length; i++) {
rowData = tblData.rows[i].cells[3].innerHTML;
var styleDisplay = 'none';
for (var j = 0; j < strData.length; j++) {
if (rowData.toLowerCase().indexOf(strData[j]) == 0)
styleDisplay = '';
else {
styleDisplay = 'none';
break;
}
}
tblData.rows[i].style.display = styleDisplay;
}
}
- Search_Gridview() = 函数的名称。
- strKey = 输入搜索字符
- strGV = html table>
相关文章:
- 而循环只设置php中输入字段中的第一个值
- 错误:$injector:modulerr模块错误(我的第一个SPA应用程序)
- IE11中的第二个调用取消了第一个Fetch API调用
- Javascript XMLHttpRequest——只有第一个POST请求有效
- 使用javascript或angularjs特定过滤器搜索字符串中第一个img标记的json值
- 将OnClick函数设置为<ul>,最后一个ul是擦除第一个ul-s
- RxJS油门行为;立即获取第一个值
- Regex-从字符第N次出现到字符串末尾的匹配
- Angular UI网格:如何通过第一个UI网格中的按钮使第二个UI网格可见
- 选择多个实例中的第一个
- 如何在调用下一个请求之前完成第一个Ajax Get请求
- 在跨度中每3个字符添加一个空格
- 如何在JavaScript中每隔第n个字符分割一个字符串
- Lodash:返回对象的第一个键,该对象的值(即数组)中有一个给定的元素(即字符串)
- 看起来第一个console.log是'It’不太对
- 与杜兰达尔合作的第一个JavaScript项目.尝试从第三方 API 获取数据
- 节点发布错误对象的第一个“属性”
- Javascript:表单验证getElementById仅返回第一个id元素
- 删除最后一个无效字符,而不是第一个(javascript验证)
- 获得第一个n个文本字符的网页与他们的风格等