1

ユーザーが一連のチェック ボックスを選択してフィルター処理できるイベントのリストがあります。以下を使用して各イベントにデータを添付しました (単純化するために真/偽の値をハードコーディングしました):

$(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 のすべてのイベントを選択したい。(著者やジャンルで本をフィルタリングする Amazon ブック検索のように考えてください。)

私の問題は、一致を選択するために使用している構文です。

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

条件に一致するアイテムを選択するための正しい構文は何ですか?

4

1 に答える 1

1

あなたがする必要があります

$(this).data(group)[identifier]
于 2013-08-02T17:58:44.967 に答える