我有一个用户可以通过选择一系列复选框进行过滤的事件列表。我使用(我已经硬编码了真/假值来简化)来为每个事件附加数据:
$(thisDiv).data({
"Category": {
"Category1": true,
"Category2": false,
"Category3": true,
"Category4": true,
"Category5": false
},
"Topic": {
"Topic1" : true,
"Topic2" : false,
"Topic3" : false,
"Topic4" : true,
"Topic5" : true
}
});
当用户选择/取消选择相应的复选框时,我想根据相应的值隐藏/显示事件,例如,如果选择了Category1复选框,我想选择Category1 == true的所有事件。 (想象一下亚马逊图书搜索,你想通过作者或类型过滤书籍。)
我的问题是我用来选择匹配的语法:
$(checkboxes).change(function() {
if ($(this).is(':checked')) {
var group = this.groupName; //an attribute I added to the checkbox that contains the key (e.g. "Category" or "Topic")
var identifier = this.id; //e.g. "Category1"
$(eventContainer).each(function() {
//alert($(this).data(group).identifier); //.data(group) alone returns object, but once I add .identifier it fails
if ($(this).data("Category").Category1 == true) { //works
//show/hide events based on other conditions
};
}); //end function
}
}); //end function
选择符合条件的项目的正确语法是什么?
答案 0 :(得分:1)
你需要做
$(this).data(group)[identifier]