在jQuery中:如何获得(自然)创建IMG的宽度

时间:2013-01-26 13:02:27

标签: jquery image

我有这段代码:

var img = $('<img>')
.attr('src','a.jpg')
.load(function(){
    alert(img.width()) ;
}) ;

宽度始终等于0,

如何获得自然宽度尺寸?

谢谢!

编辑:我只是 console.log(img)然后我看到 naturalWidth
但唯一的方法是: img [0] .naturalWidth

http://jsfiddle.net/akkara/L9dMD/1/

1 个答案:

答案 0 :(得分:1)

你写的代码是对的。

var img = $('<img>')
.attr('src','a.jpg')

// Correct till here
// Wrong after this!

.load(function(){
    alert(img.width()) ;
});

但是,它仍然不是作为布局的DOM。所以,这不起作用。你需要做的是,你需要将它放在DOM中。

所以,最好的办法是,将它放在DOM中并获取属性。

var img = $('<img>')
.attr('src','a.jpg')
.appendTo('body');
alert(img.height());
img.remove();

更新了工作小提琴:

$(document).ready(function(){
    var img = $('<img>')
        .attr('src','http://blog.tmcnet.com/blog/rich-tehrani/uploads/new-microsoft-logo.png')
        .css('visibility', 'hidden')
        .appendTo('body');
    var imgHt = img.height();
    alert(imgHt);
    img.remove();
});

小提琴:http://jsfiddle.net/praveenscience/KpCRe/