找到img height和write属性--jquery

时间:2012-11-05 19:25:48

标签: jquery

尝试找到img高度并将内联应用为attr。目前img只有src attr但想要动态查找高度并应用。

当前

  <img src="#">

所需

<img src="#" height="find this images height">

这是我到目前为止所拥有的

$(document).ready(function() {
 $("img").load(function() {
 var width = $(this).width();
 var height = $(this).height() ;

 $(this).attr( "height", "+ height" );
 });
});

有什么想法吗?

2 个答案:

答案 0 :(得分:1)

来自jQuery documentation

  

与图像一起使用时加载事件的注意事项

     

开发人员尝试使用.load()解决的常见问题   快捷方式是在图像(或集合)时执行函数   图像)已完全加载。有几个已知的警告   这应该注意。这些是:

     

它不能一致地工作,也不能可靠地跨浏览器

     

没有   如果图像src设置为与src相同,则在WebKit中正确触发   前

     

它没有正确地冒泡DOM树可以停止射击   对于已经存在于浏览器缓存中的图像

你可以用这个:

var img = $('img').get(0); // no better selector ?
if (img.height) alert('height is '+img.height);
else img.onload = function(){alert('height is '+img.height)};

以更清洁的方式:

function onImgLoaded(img, callback) {
   if (img.width) callback(img));
   else img.onload = function(){callback(img)};
}
onImgLoaded($('img').get(0), function(img){
    alert('height is '+img.height);
});

答案 1 :(得分:0)

这里有点不清楚在写入DOM之前是否需要图像的高度。这是如何获得宽度&amp;高度与直javascript:

var img   = document.getElementById('image_id'); 
var img_w = img.clientWidth;
var img_h = img.clientHeight;

这是如何使用jQuery:

var img   = $("<img src='image_url' />");
var img_w = img.width;
var img_h = img.height;
祝你好运......

回答附:

var img_h; var img_w;
var img = new Image();
img.src = img_src;
img_h   = img.height;
img_w   = img.width;
document.write( "<img src=" + img_src + " height=" + img_h + " />" );