2009-08-08 67 views
0

我有一個普通的div,像這樣的元素:操縱使用jQuery不工作

<div id="registry_ViewPanel"> 
    <div id="registry_Header">Register</div> 
    <div id="registry_Content"> 
     //Registry fields here 
    </div> 
</div> 

與CSS:

#registry_ViewPanel { 
    width:400px; 
    height:400px; 
    border:1px solid; 
    background-color:#fff; 
    display:none; 
    position:fixed; 
} 

下面是一些提示我沒有使用jQuery:

alert($("#registry_ViewPanel").length); 
alert($("#registry_ViewPanel").html()); 
alert($("#registry_ViewPanel").height()); 
alert($("#registry_ViewPanel").width()); 

以下是結果

1 
//Displays everything inside of <div id="registry_ViewPanel"></div> 
0 
0 

但是,當我看着<div id="registry_ViewPanel"></div>與螢火蟲,沒有什麼壓倒一切的高度或寬度...

此外,當我嘗試分配.draggable();或做.fadeIn();它不工作...

爲什麼會發生這種情況的任何想法?如果您有任何懷疑,即使沒有足夠的信息,請讓我知道,我會提供更多信息或嘗試您的想法。

謝謝
馬特

+0

剪切並粘貼您的代碼,它可以調出400和400的高度和寬度。與fadeIn一樣。 jQuery v1.3,你的? – random 2009-08-08 06:57:06

+0

jQuery v1.3.2。奇怪的是,它不會讓我對註冊表中的任何元素做任何事情或註冊它......這絕對沒有意義......但我將它們全部更改爲reg_,所以現在它們工作 – Matt 2009-08-08 17:55:54

回答

2

height()width()功能得到實際的DOM對象的高度。由於沒有內容的div根本不會渲染,因此它會產生0.使用css()可以獲得CSS屬性,如karim79提及。

$("#thing").css("height"); 
+0

有內容在它(我更新了我的問題)...但你是對的,做.css('高度')確實返回'400px'...爲什麼會做.height()返回0? – Matt 2009-08-08 01:39:06

+0

我想不出什麼。有問題的div在瀏覽器中可見? – 2009-08-08 01:43:46

+1

你有一個顯示:無;對於有問題的div。這導致得到的尺寸爲0. – 2009-08-08 01:50:08

0

一個長鏡頭...我想到的唯一的事情是,整個文件尚未加載/渲染然而,爲此元素不具備的寬度和高度。你是否將jQuery代碼封裝在文檔ready()中?

$(document).ready(function() { 
    alert($("#registry_ViewPanel").length); 
    alert($("#registry_ViewPanel").html()); 
    alert($("#registry_ViewPanel").height()); 
    alert($("#registry_ViewPanel").width()); 
}); 
+0

它已經在$(document).ready(function(){});謝謝 – Matt 2009-08-08 17:54:11