2012-02-24 69 views
0

我是JavaScript和jQuery的總新手,需要一些幫助。我也很抱歉,如果它很容易,我只是沒有看到它!來自.width的變量

基本上,我試圖找到加載後的圖像大小,所以我可以使用這些信息來調整div的寬度。

這是目前代碼:

<script type="text/javascript" src="js/jquery.js"></script> 

<img id="Img1" src="01.jpg" style="height: 50%; width: 50%;" /> 

<script> 
$(document).ready(function() { 
    $(Img1).load(function() { 
     alert($(this).width()); 
    }); 
}); 
</script> 

與正確的寬度創建一個提示框!但我似乎無法找到重用這些信息或從中聲明變量的方法!

請任何人都可以幫我嗎?任何幫助將不勝感激!謝謝。

+0

嘗試'alert($(this).attr(「width」));'當然假設'this'是對'img'標記的引用。 – asawyer 2012-02-24 20:23:39

+0

我很驚訝你得到正確的寬度與一個形成不良的選擇器。沒有「Img1」元素(' foo')。一旦選擇器被排除,你當然可以將結果放入一個變量中。 – 2012-02-24 20:34:48

回答

2

由於Img1img元素的ID使用它作爲id來選擇它。要存儲寬度值,可以聲明一個變量並存儲它。然後在需要的地方使用變量。

$(document).ready(function() { 
    var imgWidth; 
    //Selecting image using id selector 
    $("#Img1").load(function() { 
     imgWidth = $(this).width(); 
    }); 
}); 

您應該學習jQuery根據您的標記結構提供的各種選擇器。看看這個鏈接http://api.jquery.com/category/selectors/

注意:如果你想在整個頁面中使用這個變量,那麼你應該在外部或全局範圍內定義它。

+1

我也認爲這是一個糟糕的選擇器,有時候電器壞了的問題僅僅是它沒有插入.-) – 2012-02-24 20:33:00

+0

嘿謝謝你的答案,這對我來說更有意義,但它似乎不是非常有效。我已經採取了功能之外的Var imgWidth,然後試圖在函數後使用doc.write,但它輸出'未定義'的任何線索,爲什麼?不過謝謝你! – Amy 2012-02-26 13:59:08

+0

你可以顯示你的代碼嗎? – ShankarSangoli 2012-02-26 16:14:37

1

是否這樣?

$(document).ready(function() { 
    var width; // global/parent-scope variable to hold width 
    $(Img1).load(function() { 
     width = $(this).width(); // width is now stored in global 
    }); 
}); 

否則你的問題沒有意義。

0

您是否考慮將DIV寬度設置爲auto?如果你這樣做,你甚至不必擔心知道寬度是多少。

0

這應該爲你工作:

var imgWidth; 
$(Img1).load(function() { 
    imgWidth = $(this).width(); 
    alert(imgWidth); 
}); 

這裏有一個jsFiddle例子。變量imgWidth將具有您稍後可以使用的圖像寬度。

+0

這適用於警報,但是當我嘗試使用doc.write後,它只是給了我'undefined':(任何想法我做錯了什麼?謝謝無論如何。 – Amy 2012-02-26 14:02:11

+0

我需要看看你如何使用它 – j08691 2012-02-26 16:01:31