2013-05-07 52 views
0

的append方法两个JavaScript变量如果我试图显示与这段代码的内容,我已经得到了预期的结果:如何显示与jQuery

$("#checkbox_list").append($("<li/>", {id: "medias_bloc_"+id, html: table })); //a HTML a classical html table is appended 

但是,如果我尝试添加另一个js的变量它包含一些像这样的html元素:

$("#checkbox_list").append($("<li/>", {id: "medias_bloc_"+id, html: table + input })); 

然后,仅存在出现在输入HTML(一个基本的HTML输入)和代替我已经得到了这样的表:[对象的对象]

我该如何解决这个问题?

编辑:THX这个问题的答案是对的变量都的console.log结果:

Object[table.add_table] //console.log(table) 

<input name="cat" type="hidden" value=3105 />//console.log(input) 

好了,有一个字符串和一个对象,我不能连接,然后...

+1

但是'table'和'input'是什么? – 2013-05-07 15:06:27

+0

'table'和'input'都是对象? 'object + object'总是会导致'[object Object]' – roberkules 2013-05-07 15:06:35

+1

这表明'table'是某种对象,所以不要(不能)使用连接。 – 2013-05-07 15:06:38

回答

2

您可以用这种方式追加对象。使用.Append()

当您尝试添加对象之间的运营商html财产,它串联它们的类型名称,即[object][object] [object][object]

$("#checkbox_list").append($("<li/>", {id: "medias_bloc_" + id}).append(table).append(input)); 
1

你没有提到什么tableinput是。

如果tableinput是jQuery对象,则不能简单地连接它们。这将是很好的解决方案。

1

正如你不能与对象串联,你需要或者由一个追加一个(请参阅PSL的答案),或获取每个对象的html并将其并置。

$("#checkbox_list").append($("<li/>", {id: "medias_bloc_"+id, html: $(table).html() + $(input).html() })); 

我会与PSL的答案一起追加。

+0

似乎从“'table是某种对象”到“将它传递给jQuery函数将会给出很好的,可预测的结果”有点飞跃。 – 2013-05-07 15:11:16

+0

,因为它在第一个例子中只用了'table'我会假设它是一个dom元素或者一个包含html的字符串。 – roberkules 2013-05-07 15:13:08