所以我尝试了这个:
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工作。
我需要是希望在jQuery对象中保留一些<LI>
项的集合。我希望它使用传递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/
答案
将Quincy的答案添加到我的小提琴中的方式没有删除我的所有代码:
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);
});
这很有效。
答案 0 :(得分:0)
首先,如果您想按ID选择,则必须在选择器中添加'#'
。
您可以使用add()
方法
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));
});
答案 1 :(得分:-1)
您是否只能使用jQuery选择器获取项目集合? 如果您使用类标记项目,则可以使用一个简单的选择器
获取集合