尝试找到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" );
});
});
有什么想法吗?
答案 0 :(得分:1)
与图像一起使用时加载事件的注意事项
开发人员尝试使用.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 + " />" );