为什么会这样:
var items = [];
$.each([1,2,3,4], function() {
items.push($('<li />').html('test' + this));
});
// clearing/appending as two seperate calls
$('ul').empty();
$(items).appendTo('ul');
但这不是吗?
var items = [];
$.each([1,2,3,4], function() {
items.push($('<li />').html('test' + this));
});
// clearing/appending in one fluent call
$('ul').empty().append($(items));
这种方式会引发以下错误:
不支持此类界面。
答案 0 :(得分:1)
我认为这是由于实施。如果你看一下AppendTo的编写方式,它基本上是在items数组中运行$(“ul”)。append(items [i])。
追加虽然似乎不适用于数组。你会注意到即使没有空,你的线仍然无法工作。我并不完全理解append的工作原理,但我相信所发生的是函数顺序地遍历所有参数,但从不试图将元素从数组中分离出来。所以会发生的是它试图将一个数组附加到一个元素并失败。具有讽刺意味的是,这将起作用:$(“ul”)。empty()。append(items [0],items [1],items [2],items [3]);
无论如何,你必须做这样的事情才能完成你的目标:
。$( “UL”)空(); $(items).each(function(e,elem) {$( 'UL')附加(ELEM);})
答案 1 :(得分:0)
如果您将第二个示例的最后一行更改为此
,该怎么办? $('ul').empty().append(items);