2013-07-14 140 views
0

我有2個div。由於div 1可能會更長,也就是無限滾動div,所以我想使用javascript將div 2與div 1製作成相同的高度。我試圖使用下面的代碼,但它不起作用。爲什麼?如何根據另一個div高度使用javascript設置div高度?

的javascript:

<script type="text/javascript"> 
document.getElementById("div2").setAttribute("height",document.getElementById("div1").clientHeight); 
</script> 

我的div:

#div1 { 
width: 700px; 
background: #FFF; 
overflow: hidden; 
float: left; 
} 

#div2 { 
width: 300px; 
background-image: url(../images/user_panel.png); 
background-repeat:repeat-y; 
} 
+3

你應該等待DOM要獲得任何元素的高度 – slash197

+0

根據您的html的樣子,你可以做到這一點在CSS獨自前準備好。 – bestprogrammerintheworld

回答

0

這個怎麼樣:

var div1 = document.getElementById("div1"); 
var div2 = document.getElementById("div2"); 
div2.style.height = div1.style.height; // Might have to add +"px" here. 

只是從我的頭頂。

0

setAttribute函數是向HTML元素添加新屬性的DOM函數。您正試圖在div上添加height。這將有效果:

<div id="div2" height="...">...</div> 

但是HTML沒有定義這樣的height HTML元素的屬性。

你在找什麼是設置DOM元素的風格。這將是style DOM元素屬性。而style裏面你有height屬性,必須設置:

document.getElementById("div2").style.height = document.getElementById("div1").clientHeight + "px"; 

在上面的代碼示例中,您可能也想div1的填充(可能將其帶入計算)。這是因爲clientHeight包含填充,但style.height不包含。

0

這應該做的伎倆:

document.getElementById("div2").style.height=document.getElementById("div1").clientHeight+'px'; 
相關問題