2010-01-05 32 views
6

我想完成的工作:我想在現有的DIV之後添加一個DIV併爲其指定一個特定的類。追加DIV並立即在jQuery中添加類

我開始用這樣的:

var myClass = "thisIsMyClass"; 
$(this).after("<div></div>").addClass(myClass) 

有這個問題是myClass的被添加到$(本),而不是新創建的DIV。

所以我這個做了嘗試:

var myClass = "thisIsMyClass"; 
$(this).after("<div class='" & thisIsMyClass & "'></div>") 

但jQuery的不喜歡,要麼。

可以做到這一點,但是:

$(this).after("<div class='thisIsMyClass'></div>") 

jQuery是與語法確定。當然,我失去了將它作爲變量傳遞的能力。

我猜我正在做一些相當明顯的錯誤。但我很難理解那是什麼。

回答

13
$(this).after($("<div></div>").addClass(myClass)); 
+0

我不知道爲什麼它從來沒有發生過,但我從來沒有想過在jQuery中嵌套語句。謝謝,科比! – 2010-01-05 18:32:27

5

也許是這樣的:使用

var myClass = "thisIsMyClass"; 
var div = $("<div></div>").addClass(myClass); 
$(this).after(div); 

的&沒有工作,因爲這不是VB,字符串連接與+

+0

「因爲這不是vb」。 DOH! (我現在正在拍額頭)。很顯然,我昨晚沒有得到足夠的睡眠。 – 2010-01-05 18:31:24

+0

它可能發生在任何人:) – 2010-01-05 21:17:23

3

我通常最終會做這樣的事情做:

var myClass = 'thisIsMyClass'; 
$(this).after($("<div/>").addClass(myClass)); 
0

您是否嘗試過使用「+「字符而不是」&「? 順便說一句,在某些命令結尾處我看不到任何分號,可能是錯誤的?

var myClass = "thisIsMyClass"; 
$(this).after("<div class='"+ thisIsMyClass +"'></div>"); 
2
$("<div></div>").insertAfter(this).addClass(myClass); 
+0

這是一個有趣的選項。謝謝! – 2010-01-05 18:33:18

2

jQuery的方法後返回(如大多數jQuery方法),你叫後,允許方法鏈接相同的選擇,這就是爲什麼你的類名是怎麼回事到這個元素。

要做到這一點,你可以這樣做:

$(this).after($('<div class="' + myClass + '"></div>')); 

或反向選擇順序:

$('<div></div>').insertAfter($(this)).addClass('thisIsMyClass'); 
0

我一直在做這個,因爲它的超級容易,當我稍後訪問代碼

閱讀
$('#description').append('<p></p>'); 
$('#description p:last-child').addClass('name'); 
0

雖然答覆很晚,但它是上述問題的具體解決方案。您可以添加一個div一個類到任何選擇器通過像這樣的js:

$('<div/>',{ class : 'sample'}).appendTo("body");