由于我没有足够的声誉发表评论,因此我将其作为一个单独的问题发布。我正在尝试实施用户 LFReD 给出的解决方案作为对这个问题的回答:
当我从原始 SlickGrid 示例中使用它时:
function filter(item) {
for (var columnId in columnFilters) {
if (columnId !== undefined && columnFilters[columnId] !== "") {
var c = mygrid.getColumns()[mygrid.getColumnIndex(columnId)];
if (item[c.field] != columnFilters[columnId]) {
return false;
}
}
}
return true;
}
当我输入完整的单词时它会起作用。不执行部分匹配。
但是,要执行部分匹配,当我将代码替换为
function filter(item) {
for (var columnId in columnFilters) {
if (columnId !== undefined && columnFilters[columnId] !== "") {
var c = mygrid.getColumns()[mygrid.getColumnIndex(columnId)];
if (item[c.field].indexOf(columnFilters[columnId]) == -1) {
return false;
}
}
}
return true;
}
我在控制台中收到错误 javascript 错误,显示为“未捕获的 TypeError:对象 1 没有方法 'indexOf'”
我无法弄清楚我的代码中缺少什么。由于之前的代码运行良好,这意味着我已经在我的 HTML 代码中包含了必要的脚本。似乎仍然缺少一些东西。我哪里错了?