JQuery选择器动态匹配.data()数组

时间:2013-08-02 17:56:12

标签: jquery arrays json

我有一个用户可以通过选择一系列复选框进行过滤的事件列表。我使用(我已经硬编码了真/假值来简化)来为每个事件附加数据:

$(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

选择符合条件的项目的正确语法是什么?

1 个答案:

答案 0 :(得分:1)

你需要做

$(this).data(group)[identifier]