尝试使用.get(0)
来获取要添加到数组中的实际元素。看起来可以:
试一下:http://jsfiddle.net/TFY22/
(您可以在jsFiddle左侧切换jQuery版本,然后在顶部单击运行。)
var test = $('<span/>').append(
$([
$('<span/>').append(
$('<a>').attr('href', 'http://google.com').text('foo')
).get(0), // Get DOM element
$('<span/>').text('Google').get(0)// Get DOM element
])
);
$('body').append(test);
编辑:针对下面的评论,有更简单的方法。
这将一次性创建整个结构。
$('<span><span><a href="http://google.com">foo</a></span><span>Google</span></span>');
如果您有任何动态数据需要包含,可以将其拼接起来,但请注意,如果数据的来源未知,则存在安全风险。
http://jsfiddle.net/TFY22/1/
var text = 'foo';
$('<span><span><a href="http://google.com">' + text +
'</a></span><span>Google</span></span>');
或者采用更冗长的方法,分别创建每个元素并进行追加:
http://jsfiddle.net/TFY22/2/
var $top = $('<span/>');
var $a = $('<a/>').attr('href','http://google.com').text('foo');
$('<span/>').append($a).appendTo($top);
$('<span/>').text('Google').appendTo($top);
或者将您的.append()
调用链接在一起,以给出结构化的外观:
http://jsfiddle.net/TFY22/4/
var test = $('<span/>')
.append($('<span/>')
.append($('<a>').attr('href', 'http://google.com').text('foo'))
)
.append($('<span/>').text('Google'));
$('body').append(test);