jquery选择附加元素

时间:2014-10-04 13:49:34

标签: jquery

面对jquery不允许选择附加元素的问题。 我已经看到很多建议如何解决它。 例如:

var $li = $('<li><span>' + html + '</span></li>');
$('.top').append($li);

但它无法帮助我。 我从json格式的数据库中获取记录的服务器列表,在我的视图中,我循环使用此列表并生成一些html结构。

例如:

$.getJSON( "/searchbytype", data, function( data ) {
    $.each( data, function( key, val ) {
        $('items').append('<li class="item">'+ val.name + '</li>');
    });
});

接下来我要做的就是点击一些li项目并进行一些操作。 Ul列表可能包含100-200个li标记。任何想法将不胜感激!

2 个答案:

答案 0 :(得分:2)

我认为你需要事件委托

$('body').on('click', 'li', function(){
   // this handler will work even for dynamically created <li>
});

答案 1 :(得分:1)

你可以这样做:

$.getJSON("/searchbytype", data, function (data) {
    $.each(data, function (key, val) {
        $('<li>', {
            class: 'item'
        }).html(val.name).on('click', function () {
            // Your code here.
        }).appendTo('.items');
    });
});

注意:我假设容器是class等于items的元素,因此我添加了一个丢失的.jQuery选择器中添加前缀。