2012-08-04 39 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對象有兩個元素,你嘗試過的方式。閱讀文檔,沒有必要猜想它是如何工作的。

相關問題