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(及其类)中,因此它们就在那里。

4

2 回答 2

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()以了解您尝试执行的操作。

于 2012-08-04T12:10:13.290 回答
2

您的代码应该是:

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

如果您查看文档,jQuery您会发现无法按照您尝试的方式创建具有两个元素的 jQuery 对象。阅读文档,无需猜测它是如何工作的。

于 2012-08-04T12:08:05.387 回答