0

jQueryを使用してjsonファイルを解析および検索しようとしていますが、jsonファイルを解析できますが、検索できません。

私のHTML

<ol id="results"></ol>

私のjQuery

$(document).ready(function() {
    $.getJSON('myJson.json', function(data) {
        $.each(data, function(i, item) {
            $('<li />').html(item.name + '<br>' + item.details + '<br>').appendTo('#results');
        }
    });
});​

上記のコードはすべてのアイテムを返しますが、ユーザーがjsonファイルを検索できるようにしたいので、フォーム入力を含めてonclickイベントを作成し、その入力を検索に渡します。以下のリンクを参照してください。

問題は、入力変数が検索に渡されていないことですか?助けてください。

http://jsfiddle.net/xpTk5/7/


更新:変数を正規表現に渡すことが問題のようです。


解決済み:if (item.name.search(new RegExp(q, "i")) != -1){

あなたの試みに感謝し、あなたの時間を無駄にして申し訳ありません。

4

2 に答える 2

1

フォームが送信された後、テキスト ボックスの値を取得する必要があります。ドキュメントの準備ができたとき(おそらく何かが入力される前)に値を取得するため、どこにあったとしても設定されることはありません。

$(document).ready(function() {
    $('#submit').click(function() {
        var q = $('#query').val();
        $.getJSON('myJson.json', function(data) {
            // iterator
            $.each(data, function(i, item) {
                // search the results using regular expression for the query
                if (item.name.search(new RegExp(/''+q+''/i)) != -1) {
                    $('<li />').html(item.name + '<br>' + item.details + '<br>').appendTo('#results');
                }
            });
        });
    });
});
于 2012-10-31T16:42:51.660 に答える
0

変数は正規表現によって読み取られていました。

$('#submit').click(function() {
    var q = $('#query').val();
    $.getJSON('myJson.json', function(data) {
        // iterator
        $.each(data, function(i, item) {
            // search the results using regular expression for the query
            if (item.name.search(new RegExp(q, "i")) != -1) {
                $('<li />').html(item.name + '<br>' + item.details + '<br>').appendTo('#results');
            }
        });
    });
});

http://jsfiddle.net/xpTk5/8/

于 2012-11-01T11:12:41.777 に答える