无法将子元素附加到父div

时间:2015-09-21 14:07:23

标签: jquery html

我有以下代码无法正常工作:

$.each(results, function(idx, val) {
    $('<div>')
    .addClass('gmap-item')
    .attr('data-place-id', val.place_id)
    .append($('<span>').addClass('gmap-icon').addClass('gmap-icon-marker'))
    .append($('<span>').addClass('gmap-item-query').text(val.name))
    .text(val.formatted_address).appendTo(res);
}

基本上,不会创建/追加两个内部span标记。我不知道为什么。我不得不用以下内容替换它:

res.append(
'<div class="gmap-item" data-place-id=\"' + val.place_id + '\">' +
'<span class="gmap-icon gmap-icon-marker"></span>' + 
'<span class="gmap-item-query">' + val.name + '</span>' +
val.formatted_address + '</div>');

这很难看,但它有效。任何想法为什么正确的方法不起作用? 谢谢你的所有答案!

1 个答案:

答案 0 :(得分:3)

两次致电.append()后,您拨打.text(),重置div的内容。

在这种情况下,您也可以使用.append()添加文字,所以请执行以下操作:

$.each(results, function(idx, val) {
    $('<div>')
    .addClass('gmap-item')
    .attr('data-place-id', val.place_id)
    .append($('<span>').addClass('gmap-icon').addClass('gmap-icon-marker'))
    .append($('<span>').addClass('gmap-item-query').text(val.name))
    .append(val.formatted_address).appendTo(res);
}