查找img高度和写入属性-jquery

查找img高度和写入属性-jquery,jquery,Jquery,正在尝试查找img高度并将内联应用为attr。目前img只有src attr,但希望动态查找高度并应用 当前 <img src="#"> 有什么想法吗?来自: 与图像一起使用时加载事件的注意事项 开发人员试图使用.load()解决的一个常见问题 快捷方式是在图像(或 图像)已完全加载。有几个已知的警告 这一点值得注意。这些是: 它在跨浏览器中无法稳定工作,也不可靠 没有 如果图像src设置为与相同的src,则在WebKit中正确激发 以前 它不能正确地冒泡DOM树可以停止开火

正在尝试查找img高度并将内联应用为attr。目前img只有src attr,但希望动态查找高度并应用

当前

  <img src="#">
有什么想法吗?

来自:

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

开发人员试图使用.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);
});

这里有点不清楚在写入DOM之前是否需要图像的高度。下面是如何使用直线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=$(“”);
var img_w=img.宽度;
var img_h=img.高度;
祝你好运

答复如下:

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 + " />" );
var-img\u h;var img_w;
var img=新图像();
img.src=img_src;
img_h=img.高度;
img_w=img.宽度;
文件。填写(“”);

查看这篇文章:不确定所有浏览器都会为缓存的图像触发img.load()。对于损坏的图像也是如此。是否有人可以确认或确认?是的,我看到了该帖子,但我不知道如何将其作为高度属性应用于图像?如果图像不在缓存中,则不起作用,因为加载是异步的。是的,我确实需要在DOM之前加载它。这是针对砖石布局的,因此,如果不先设置图像高度,则图像会重叠,这就是为什么我需要将高度作为属性应用,然后您可能需要使用一些简单的javascript和document.write命令。检查我的编辑代码。
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 + " />" );