将DOM元素添加到jQuery堆栈数组中

时间:2013-02-21 23:12:39

标签: jquery dom

我有一个选择器,可以获得几个项目,我想在该堆栈中添加一个元素。这不是pushStack的用途吗?

HTML:

<div id="container">
    <div class="color-me">Line 1</div>
    <div class="color-me">Line 2</div>
</div>

Javascript:

var $divs = $('.color-me');

var $generatedDiv = $('<div></div>', {
    'class': 'color-me',
    'text': 'Line 3'
}).appendTo($('#container'));

$divs.pushStack($generatedDiv);

// Shouldn't the $generatedDiv be in the $divs jQuery stack now?
$divs.css('color', 'red');

jsFiddle:http://jsfiddle.net/bGDxw/

3 个答案:

答案 0 :(得分:2)

pushStack确实将它们添加到jQuery堆栈中,但这不是你在那里处理的。你正在处理一组jQuery对象。

因此,您需要使用add()功能:

  

说明: 将元素添加到匹配元素集中。

例如:

var $divs = $('.color-me');

var $generatedDiv = $('<div />', {
    'class': 'color-me',
    'text': 'Line 3'
}).appendTo($('#container'));

$divs = $divs.add($generatedDiv);
$divs.css('color', 'red');

答案 1 :(得分:1)

听起来你想要的是.add()。而不是

$divs.pushStack($generatedDiv);

尝试

$divs = $divs.add($generatedDiv);

答案 2 :(得分:0)

使用$divs.add($generatedDiv);

请参阅jQuery.add() function文档。