我正在尝试根据内联数据属性搜索多个数据结果。 但是,我只能弄清楚如何搜索单个数据属性而不是全部。 我该如何做到这一点?
我有什么:http://jsfiddle.net/9SMZC/2/
$("input[type=text]").keyup(function () {
var filter = $(this).val();
$("a").each(function () {
if ($(this).attr("data-event-name").search(new RegExp(filter, "i")) < 0) {
$(this).hide();
} else {
$(this).show();
matches++;
}
});
});
提前致谢!
答案 0 :(得分:3)
如果您想应用“或”逻辑,可以这样做:
$("input[type=text]").keyup(function () {
var filter = $(this).val();
$("a").each(function () {
var data = $(this).data();
$(this).hide();
for (var key in data) {
if (~data[key].search(new RegExp(filter, "i"))) {
$(this).show();
break;
}
}
});
});
Demonstration(尝试搜索“andrew”例如)
我们的想法是获取data
对象并迭代属性。为了简化代码(即避免保留布尔值),我也总是隐藏并显示元素何时正常。