我有一个选择器,可以获得几个项目,我想在该堆栈中添加一个元素。这不是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/
答案 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文档。