jQuery appendTo在$ .post下不起作用

时间:2013-04-21 14:31:36

标签: javascript jquery jquery-post

// plays a card into table.
// this code works. rendered card is appending into the table.
    var playCard = function(card){
        var renderedCard = renderCard(card);
        $('#'+renderedCard.id).appendTo('#flop');

// but this one does not work.
var playCom = function(){
        $.post('/api/comPlay', function(data){
            var renderedCard = renderCard(data.card);
            $('#'+renderedCard.id).appendTo('#flop');
        });
    };

我检查$.post的返回值。 data.card给出了正确的值。我使用renderCard函数创建了一个div html。正如您所见,该功能正常工作。但是在$.post下没有。

我被困住了。关于$.post,我必须了解一些特别的东西吗?

谢谢。

更新

var renderCard = function(card){
        var create = document.createElement('div');
        create.className = 'cardBig';
        create.id = card;
        return create;
    };

3 个答案:

答案 0 :(得分:3)

您无需“查找”新创建的DOM元素。

$(renderedCard).appendTo('#flop');

应该这样做。

另外,既然你正在使用jQuery:

$('#flop').append($('<div/>', {
  className: 'cardBig',
  id: data.card
}));

将为您节省额外的功能。

答案 1 :(得分:1)

renderCard()方法中,您只是创建一个新的html元素,但它不会呈现给dom。

因此,您的元素查找$('#'+renderedCard.id)将无效

$(renderedCard).appendTo('#flop');

答案 2 :(得分:0)

您是否尝试过首先选择id元素,如下所示:

 $(renderedCard).appendTo( $('#flop')[0] )