所以我尝试了这个:
var allItems = jQuery();
function additems(items) {
allItems = allItems.pushStack(items);
}
additems(jQuery("#ul1").find("li").first());
additems(jQuery("#ul2").find("li").first());
additems(jQuery("#ul3").find("li").first());
allItems.each(function() {
jQuery("ul1").append(this);
});
她不在 jsFiddle 工作。
我需要是保留一些<LI>
的集合希望项目在 jQuery 对象中。我希望它使用传入 jQuery 对象的函数。我还需要将集合添加到像上面那样的函数内,以便可以在代码中的不同时间完成。
我知道我可以通过以下方式解决这个问题:
function additems(items){
items.each(function(){ allItems.pushStack(this);});
}
或者仅将它们作为 HTML 列表发送 <LI>
元素,但我宁愿做类似上面的事情,而且我还没有找到一种干净有效的方法来做到这一点。
谢谢!
PS:我不想需要插件。
更新
让我解释一下。我有一个函数可以做某事,它有一个 <ul>
我可以从中提取 <li>
的元素元素。
然后我想将这些元素发送到另一个函数以供以后使用。
function doSomething1()
{
//Do something
var ulElement = getFromSomewhere();
additems(jQuery(ulElement).find("li"));
// do something else
return;
}
function additems(items)
{
MyObject.allItems.pushStack(items)
}
与我的代码相比,jsFiddle 得到了简化。
修复了“#”的新 jsfiddle http://jsfiddle.net/LPkkT/8/
回答
将昆西的答案添加到我的 fiddle 中后,不会删除我得到的所有代码:
var allItems = jQuery();
function additems(items) {
allItems = allItems.add(items);
}
additems(jQuery("#ul1").find("li").first());
additems(jQuery("#ul2").find("li").first());
additems(jQuery("#ul3").find("li").first());
allItems.each(function() {
jQuery("ol").append(this);
});
这有效。
最佳答案
首先,如果你想通过id进行选择,你必须在选择器中添加一个'#'
。
您可以使用 add()
方法添加 jquery 集合
var allItems =
jQuery("#ul1").find("li").first()
.add(jQuery("#ul2").find("li").first())
.add(jQuery("#ul3").find("li").first());
allItems.each(function() {
jQuery("ol").append($(this));
});
关于javascript - 将 jquery 集合添加到 jQuery 集合时使用什么方法?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/5739187/