2012-08-04 40 views
0

为什么下面的代码不适用css规则?将样式应用于多个选择器

var prevElem = $('<a href="#" class="'+ settings.prev +'" />').text('Prev'); 
var nextElem = $('<a href="#" class="'+ settings.next +'" />').text('Next'); 
container.append(prevElem, nextElem); 
$(prevElem, nextElem).css('top', container.height()/2); 

它只适用于prevElem。

请注意,动态元素已添加到DOM(与他们的类),所以他们在那里。

+0

你是否声明了settings.next类? – Narendra 2012-08-04 12:04:36

+0

是的,谢谢雨。 – 2012-08-04 12:06:58

回答

3

要做你需要的,你必须拨打add()方法。

var prevElem = $('<a href="#" class="'+ settings.prev +'" />').text('Prev'); 
var nextElem = $('<a href="#" class="'+ settings.next +'" />').text('Next'); 

prevElem.add(nextElem).appendTo(container).css('top', container.height()/2); 

您无法通过将参数作为参数提供给jQuery而加入数组的原因是,根本没有这样的API。而且不应该是因为它将不可能实现jQuery(selector [, context]),它在上下文中搜索元素。 检查出$.add()你试图做什么。

+0

谢谢尼古拉,很好的解释。你得到答案。 – 2012-08-04 12:14:05

2

你的代码应该是:

prevElem.add(nextElement).css('top', container.height()/2); 

如果你看看documentation of jQuery你会看到,你不能创建一个jQuery对象有两个元素,你尝试过的方式。阅读文档,没有必要猜想它是如何工作的。

相关问题