2013-04-11 134 views
3

這個JS腳本給了我一個警告框,當CSS類設置寬度時獲取div的寬度

jQuery.UI.version = 1.0.2 --- Box Width: undefined 

如何選擇#resizable

<head> 
    <title></title> 
    <link href="StyleSheet.css" rel="stylesheet" type="text/css" /> 
    <script src="jquery-1.9.1.min.js" type="text/javascript"></script> 
    <script src="jquery-ui-1.10.2.custom.min.js" type="text/javascript"></script> 
     <style> 
    #resizable { width: 200px; height: 150px; padding: 5px; border: 1px solid red;} 

    </style> 

     <script> 
     $(function() { 
      var boxWidth = $('#resizable').attr('width'); 
      alert("jQuery.UI.version = " + jQuery.ui.version + " --- Box Width: " + boxWidth);   
     }); 
    </script> 


</head> 
<body> 
    <div id="resizable" class="> 
     <div id="title"> 
      <h2> 
      The expanding box 
      </h2> 
     </div>  
    </div> 
</body> 
+1

正如你所看到的,這個問題是不是與選擇元件(即正常工作),它是關於正確訪問信息(寬度)。只是想明確指出。 – 2013-04-11 10:04:01

回答

3

看到這裏你沒有的width一個屬性:

<div id="resizable" class="> 

這必將崩潰,並設置爲undefinedvar boxWidth = $('#resizable').attr('width');

有是獲取元素l的寬度的兩種方法邁克:

.width()方式:

$('#resizable').width(); 

.css()方式:

$('#resizable').css('width'); 
3

您選擇$('#resizable').attr('width');搜索屬性width在可調整大小不存在

我認爲你所要求的width()

試試這個

var boxWidth = $('#resizable').width(); //this gives you the width of resizable div 

更新眼看評論

你的代碼讀取DIV <div id="resizable" class="asd"> ..但看到的屬性寬度,不存在所謂的寬度在此屬性DIV所以失敗...文檔閱讀更多有關attr()

如果您添加寬度您的代碼將工作像<div id="resizable" class="asd" width="30px">格...這會給你30px的警報......

+0

謝謝!這是如何工作,我不?我從jQuery網站獲得了我的代碼。 – Lautaro 2013-04-11 10:12:44

+1

@Lautaro:你的'div'元素沒有'width'屬性。只有'id'和'class'。即使你要設置一個自定義的'width'屬性,它只會給你設置的值,而不是元素的實際寬度。 – 2013-04-11 10:15:10

+0

@Lautaro我已經在我的答案中解釋了它.....反正你的代碼讀取div的屬性寬度''div id =「resizable」class =「asd」>'..但看到theres沒有屬性叫寬度這個div ...你的代碼將工作,如果你像div添加寬度div div =「width =」30px「>」...這會給你警報爲30px – bipen 2013-04-11 10:15:51

1

嘗試此位:

$('#resizable').width(); 
1

你不必在該div width屬性,你試圖讓width屬性的div?嘗試

$("#resizable").width(); 
0
alert($('#resizable').width()); will you give 200 

alert($('#resizable').css('width')); and this will you give 200px 

div width