将jquery集合添加到jQuery集合时使用什么方法?

时间:2011-04-21 03:30:33

标签: javascript jquery html

所以我尝试了这个:

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);
});

这很有效。

2 个答案:

答案 0 :(得分:0)

首先,如果您想按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));
});

http://jsfiddle.net/LPkkT/4/

答案 1 :(得分:-1)

您是否只能使用jQuery选择器获取项目集合? 如果您使用类标记项目,则可以使用一个简单的选择器

获取集合