// 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;
};
答案 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] )