我有一个小问题,我似乎无法解决。
这里......我有一个像这样创建的输入......
var input = $('<input/>');
如果我这样做......一切都很好
$(this).append(input);
如果我这样做......
$(this).append('<div>' + input + '</div>');
它附加一个带有html [object Object]
有人可以指导我朝正确的方向发展吗?
提前谢谢!
答案 0 :(得分:1)
你可以
$('<div />').append(input).appendTo(this);
演示:Fiddle
问题是input
是一个jQuery对象,所以当你在字符串连接中使用它时,它会产生[object Object]
(对象的默认toString()
);
或者
var input = $('<input/>');
$('<div />', {
append: input
}).appendTo(this);
演示:Fiddle
答案 1 :(得分:1)
您需要使用所有字符串或所有jQuery对象:
e.g。
$(this).append($('<div>').append(input));
或
$(this).append('<div>' + input[0].outerHTML + '</div>');
// I think this version is ugly :)
注意:
$('<div>')
创建一个新的jQuery DOM元素,然后可以附加子内容。input[0].outerHTML
将返回等同于DOM对象HTML