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正しい値を与えます。関数で div html を作成しrenderCardます。ご覧のとおり、その機能は正しく機能します。しかし、そうで$.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 に答える