我已经在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
哪里出错?
答案 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);
}
});
}