1
// 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');
        });
    };

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

我被困住了。有什么特别的事情我必须知道$.post吗?

谢谢你。

更新

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

3 回答 3

3

您不需要“找到”新创建的 DOM 元素。

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

应该这样做。

此外,由于您仍然使用 jQuery:

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

将为您节省额外的功能。

于 2013-04-21T14:38:50.520 回答
1

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

所以你的元素查找$('#'+renderedCard.id)将不起作用

$(renderedCard).appendTo('#flop');
于 2013-04-21T14:39:31.070 回答
0

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

 $(renderedCard).appendTo( $('#flop')[0] )
于 2013-04-21T14:39:58.227 回答