-1

私は検索機能を作成しようとしていますが、次のようなものを作成しました:

function Search(array, key, query, target){
    var search_string = new RegExp(query, "i");

    var filtered_list = $.grep(array, function (value, index) {
        return (value.key.search(search_string) !=-1);
    });
    $(target).empty(); 

    $.each(filtered_list, printListItem); 
}

問題は変数keytarget変数にあります。value.key.searchとで使用できるように宣言する方法がわかりません$(target).empty();。それらを文字列として宣言すると、機能しません。例えば:

var array = [{'name': 'ben'}, {'name':'kit'}];
var query = $(this).val();
var key = "name";
var target = "div#recipes";
Search(array, key, query, target);

これは私を驚かせるものではありません...しかし、私が疑問に思っているのは、キーとターゲットの値を含め、関数をどのように抽象化する必要があるかということです。ありがとう!

4

1 に答える 1

4

ブラケット表記を使用します。

var filtered_list = $.grep(array, function (value, index) {
    return (value[key].search(search_string) !=-1);
}); //           ↑   ↑
于 2012-05-13T22:06:28.227 に答える