2012-07-16 52 views
0

我正在使用jquery,使表单元格包含多个div。该div包含一些数据和一个单选按钮。我的代码有效,但我想知道为什么我必须使用“中间人”变量。看起来对我来说真的很奇怪,非常令人沮丧,并且我好奇为什么。也许我只是没有足够的好评。这里是我的代码jquery appendTo()与divs,奇怪的行为

// my radio button 
    var rad_button = $('<input type="radio"...' 
    // my object, div w some attributes, text 
    var my_Object = $('<div class="selected...' 
    rad_button.prependTo(my_Object); 

    var middle_man = my_Object; 
    middle_man.appendTo(bigger_object); 

这是我能得到这个工作的唯一方法。我试过更直接的方式:

my_object.appendTo(bigger_object); 

但那没有奏效。任何人都可以告诉我为什么这样做?

+1

这是'TYPO' my_Object!= my_object – Musa 2012-07-16 22:11:11

+0

@Olaf,在你调用prependTo()之间有一个空行,你必须将'middle_man'别名为'my_Object'才能让你的代码工作。这是否有意义,并且在换行符下的部分代码驻留在某种异步回调中,还是仅仅是'my_Object'和'my_object'之间的套接字? – 2012-07-16 22:22:40

+0

做出了一个不起作用的小提琴,它可能就像穆萨说的。 – TecHunter 2012-07-16 23:06:02

回答

0

难道你不能只在你创建的表单元格上链接你的追加呼叫吗?

$('<td />') 
    .append($('<input />', { 'type':'radio' })) 
    .append($('<div />', { 'class':'selected' })); 

应该输出HTML

<td> 
    <input type="radio" /> 
    <div class="selected"></div> 
</td> 

没有中间人。