我的代码是:
colModel: [
{ display: 'Grade', name: 'Grade', width: 40, align: 'center' },
{ display: 'Grade ID', name: 'ID', width: 180, align: 'left' },
{ display: 'Organization ID', name: 'Organization_ID', width: 120, align: 'left' },
{ display: 'Organization Name', name: 'Organization_Name', width: 130, align: 'left', hide: true }
]
将其作为对象传递给函数。
我想像
一样过滤它//这有效
alert(colModel[0].display);
var obj = colModel.filter(function () {
return $(this).name == "Grade"; });
alert(obj.display);
但这未定义。
感谢任何帮助
编辑:
该对象作为选项传递给插件:
$('#filteredResult').FilteredPagedTable({ url: "http://localhost:2014/mySer.svc/GetFilteredPaged", grid: true, pageSize: 4, pageNo: 0, columnName: "ID", IsAscending: true, filteredColumn: $('#ddlColumns').val(), SearchedValue: $('#txtSearchTextBox').val() ,
colModel: [
{ display: 'Grade', name: 'Grade', width: 40, align: 'center' },
{ display: 'Grade ID', name: 'ID', width: 180, align: 'left' },
{ display: 'Organization ID', name: 'Organization_ID', width: 120, align: 'left' },
{ display: 'Organization Name', name: 'Organization_Name', width: 130, align: 'left', hide: true }
]
});
答案 0 :(得分:1)
var matchedCols = {};
$.each(colModel, function(i) {
if (this.name == "Grade") {
matchedCols[i] = this;
}
});
答案 1 :(得分:1)
我已经完成了这个......
你在哪里
alert(obj.display);
你应该使用
alert(obj[0].display);
当filter
返回匹配数组时 - 即使只找到一个结果。
答案 2 :(得分:0)
为什么要使用jQuery?
var colModelFiltered = colModel.filter(function(element, index, array){
return element.name === "Grade";
});
编辑(Kamal Deep Singh)
您还需要输入:
if (!Array.prototype.filter) {
Array.prototype.filter = function(fun /*, thisp*/) {
var len = this.length >>> 0;
if (typeof fun != "function")
throw new TypeError();
var res = [];
var thisp = arguments[1];
for (var i = 0; i < len; i++) {
if (i in this) {
var val = this[i]; // in case fun mutates this
if (fun.call(thisp, val, i, this))
res.push(val);
}
}
return res;
};
}
在document.ready()
事件中也可以在IE上运行。
更多细节如下:
Javascript: How to filter object array based on attributes?