没有数据属性的过滤器插件
Filter plugin without data-attribute
如何通过 MixItUp/Isototpe
的插件过滤或排序没有数据属性的信息?
过滤器可能是#url,排序可能是class。
假设您设置了 JSON,您可以像这样过滤值(我还假设您已经从 DOM 中获取了 filter/sort 值):
还没有 运行 如果不准确,我深表歉意 - 我还不习惯堆叠溢出格式,但如果有任何问题,我会进行编辑。我觉得逻辑应该没问题
var dataset = [
{url: '/test'},
{url: '/test2'}
];
var filterValue = '/test2'; // pass this to function or get from DOM
var sortBy = 'url'; // again, pass in somewhere or get from DOM
var sortType = 'asc';
function filter(data, filter) {
var filteredResults = data.filter(function (el) {
return (filter !== '' && el.url.toLowerCase().indexOf(filter.toLowerCase())) !== -1;
})
return filteredResults;
}
function sort(data, sortBy, sortType) {
var sortIndex = sortType === "asc" ? 1 : -1;
data.sort(function (a, b) {
if (a[sortBy] < b[sortBy]) {
return -1 * sortIndex;
} else if (a[sortBy] > b[sortBy]) {
return 1 * sortIndex;
}
return 0;
})
}
var filteredResults = filter(dataset, filterValue);
sort(dataset, sortBy, sortType); //dataset will be sorted
如何通过 MixItUp/Isototpe
的插件过滤或排序没有数据属性的信息?
过滤器可能是#url,排序可能是class。
假设您设置了 JSON,您可以像这样过滤值(我还假设您已经从 DOM 中获取了 filter/sort 值):
还没有 运行 如果不准确,我深表歉意 - 我还不习惯堆叠溢出格式,但如果有任何问题,我会进行编辑。我觉得逻辑应该没问题
var dataset = [
{url: '/test'},
{url: '/test2'}
];
var filterValue = '/test2'; // pass this to function or get from DOM
var sortBy = 'url'; // again, pass in somewhere or get from DOM
var sortType = 'asc';
function filter(data, filter) {
var filteredResults = data.filter(function (el) {
return (filter !== '' && el.url.toLowerCase().indexOf(filter.toLowerCase())) !== -1;
})
return filteredResults;
}
function sort(data, sortBy, sortType) {
var sortIndex = sortType === "asc" ? 1 : -1;
data.sort(function (a, b) {
if (a[sortBy] < b[sortBy]) {
return -1 * sortIndex;
} else if (a[sortBy] > b[sortBy]) {
return 1 * sortIndex;
}
return 0;
})
}
var filteredResults = filter(dataset, filterValue);
sort(dataset, sortBy, sortType); //dataset will be sorted