2012-01-19 50 views
0

嘗試在元素之後插入HTML的某些語法有點問題。jQuery字符串語法

$('<div id="newdiv" style="height:' + heightvar +'"></div>').insertAfter('#mydiv'); 

新的div插入正確的位置,但缺少樣式中的高度屬性,所以看起來像這樣。

<div id="newdiv" style=""></div> 

你能看到我的語法問題嗎?

+0

'heightvar'的值是什麼? – Quentin

+0

你有沒有提醒'heightvar'確保有價值?我懷疑它是空的。 – Craig

回答

1

我猜你忘了單位在heightvar變量。

heightvar = '10'會導致一個空白樣式屬性,但heightvar = '10px'不會。

+0

是的,就是這樣。我不知道如果沒有px,風格會留空。 – Sam

1

這個怎麼樣:

$('<div id="newdiv">') 
.css({height:heightvar}) 
.insertAfter('#mydiv'); 
+0

+1我的結果將是相同的,但是你的代碼更好:) –

+0

與問題無關的語義。布蘭登有正確的答案。 –

+0

這是編碼風格的一個不錯的方法。謝謝加布裏埃爾。 – Sam

1
$('<div id="newdiv" style="height:'+ heightvar +'px">hello</div>').insertAfter('#mydiv'); 
+0

@Sam你錯過了'px' – thecodeparadox

0

您可以使用jQuery功能,而不是模板化應用的樣式。將表現更好,更容易做到。

var myDiv = $('<div id="newdiv"></div>'); 
$(myDiv).css('height', heightvar); 
myDiv.insertAfter('#mydiv'); 
0

我懷疑heightvar有無效值。見我demo

下面的代碼工作對我來說,周圍的選擇

var heightvar = '0px'; 

$('<div id="newdiv" style="height:' + heightvar +'"></div>').insertAfter('#mydiv'); 
0

開關。 JQuery函數 - $() - 應該用於選擇要更改的元素。嘗試:

var heightvar = '0px'; 

$('#mydiv').after('<div id="newdiv" style="height:' + heightvar +'"></div>');