0

我有一个获取几个项目的选择器,我想向该堆栈添加一个元素。这不是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/

4

3 回答 3

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');
于 2013-02-21T23:16:17.963 回答
1

听起来你想要的是 .add()。代替

$divs.pushStack($generatedDiv);

尝试

$divs = $divs.add($generatedDiv);
于 2013-02-21T23:19:08.950 回答
0

采用$divs.add($generatedDiv);

请参阅jQuery.add() 函数文档。

于 2013-02-21T23:14:16.053 回答