2012-11-09 36 views
0

後不工作,我有以下的代碼,在IE8正常工作:.hide()appendTo

$("<div class='divButtons'>").appendTo($(".widget_header")); 
$(".divButtons").html("(close), (min), (max)"); 

不過,如果我添加了一個.hide,而不是僅僅隱藏.divButtons,它隱藏了整個.widget_header

例如:

$("<div class='divButtons'>").appendTo($(".widget_header")); 
$(".divButtons").html("(close), (min), (max)").hide(); 

這是爲什麼發生?

+2

@NullPointer這是怎麼重複? OP在追加元素後運行'.hide()',這很好。 –

+0

您應該使用'的.text(...)'而不是'的.html(...)'如果你不想讓你的文字被解析爲HTML。 –

回答

3

你不關閉你的div標籤,並讓你的HTML將是無效的,導致所有的div的界限變得歪斜。試試這個:

$("<div class='divButtons'>(close), (min), (max)</div>").appendTo($(".widget_header"));​ 

$("<div class='divButtons'></div>").appendTo($(".widget_header")); 
$(".divButtons").html("(close), (min), (max)").hide(); 

這是你可以閱讀有關here

成文IE8問題,而且這一點,您可以通過執行以下命令來創建更簡潔,優化的代碼

用css把它初步隱藏起來display: none;

這是fiddle demo它的

+0

似乎至少不太可能成爲IMO的原因,因爲jQuery不會簡單地拋出HTML,它會將字符串解析爲DOM元素,然後附加它。無論如何,提供一個有效的HTML是很好的做法。 –

+0

OP提到IE8這就需要在appendTo結束標記,請參閱[這個問題](http://bugs.jquery.com/ticket/12581) –