0

JSONファイルから要素を構築し、それらの要素にクリック機能を追加するWebページを構築しようとしています。

$(document).ready(function(){

 $.ajax({
        url: 'database.php',
        type: "POST",
        dataType: 'json',
        success: function (datas) {
            (datas);
            for (var x = 0; x < datas.data.length; x++) {
                var id = datas.data[x].ID;
                var ip = datas.data[x].IP;
               var ips='<div class="ip"><span id="ids">'+id+'</span><span id="number">'+ip+'</span></div>';
               $('#left').append(ips);

            }
        }
    });

$('.ip').click(function () {
alert($(this).children('#ids').text());
});

});

上記のコードは要素を正常に構築しますが、クリック機能は機能しません。

4

1 に答える 1

3

代わりにon関数を使用できます。これは、まだ作成されていない要素にイベント ハンドラーを適用するために使用されます。

現在のセットアップがある場合は、click代わりに次のようなことを試してください。

$(document).on('click', '.ip', function(){
    alert($(this).children('#ids').text());
});

@Pete が示唆しているようにid、ループ内で同じ属性を割り当てることはお勧めできません。それらはドキュメントに固有でなければなりません。代わりに名前でそれらを見つけることを検討してくださいclass。そうすれば、次のようなアラートを出すことができます:

alert($(this).children('.MyIdsSpan').text());
于 2013-02-18T16:48:22.333 に答える