字符串未附加到动态创建的Div

时间:2015-08-13 04:41:53

标签: javascript jquery ajax

我已经在stackexchange上深入研究了这一点,我不认为我正在制作一个共同的'错误,其他答案都没有解决这个问题。

问题是我正在尝试将数据附加到某个ID的DEFINITELY现有div。我所知道的是div是动态生成的,这可能就是隐藏它的原因。

尽管使用jquery on我似乎无法获得jquery来找到特定的div。

以下是代码:

$(document).ready(function() {

    function example_append_terms(data) {
        var sender_id = data['sender_id'];
        $.each(data, function(k, v) {
            if (k != 'sender_id') {
                html = '<span data-lemma="' + v['key'] + '" class="lemma">' + v['name'] + '</span>';

                $('#' + sender_id + ' .lemmas').append(html);
            }
        });
    }

    function example_get_options(data) {
        $.ajax({
            url: '/example/',
            type: 'post',
            data: data,
            success: function(data) {
                //alert(JSON.stringify(data))
                example_append_terms(data)
            },
            failure: function(data) {
                alert('Got an error dude');
            }
        });
        return false;
    }


    $(document).on('click', ".example-synset-option", function() {
        var synset = $(this).data('name');
        var sender_id = $(this).attr('id')
        example_get_options({
            'synset': synset,
            'sender_id': sender_id,
        });
    });

});

点击某个div时,会触发一个动作,以获得选项&#34;它反过来运行ajax功能。 ajax函数运行&#34;替换器&#34;函数example_append_terms

测试了最多example_append_terms .each迭代肯定有效。但是当我测试$('#' + sender_id + ' .lemmas').length时,我继续得到0。

这个jquery newb哪里出错?

1 个答案:

答案 0 :(得分:0)

我通过改变东西来修复它......

由于某些莫名其妙的原因,获取数据属性比id ...更好。

function intellitag_append_terms(data) {
    var sender_id = $('*[data-location="'+data['sender_id']+'"] .lemmas');        
    $.each(data, function(k, v) {
        if (k != 'sender_id') {
            html = $('<span data-lemma="' + v['key'] + '" class="label label-primary lemma">' + v['name'] + '</span>');
            html.appendTo(sender_id)
            //$('#' + sender_id).append(html);
        }
    });
}