2012-02-24 38 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