Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/jquery/83.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
如何判断是否已使用Javascript(jQuery)为图像指定了特定的宽度/高度?_Javascript_Jquery_Image_Dimensions - Fatal编程技术网

如何判断是否已使用Javascript(jQuery)为图像指定了特定的宽度/高度?

如何判断是否已使用Javascript(jQuery)为图像指定了特定的宽度/高度?,javascript,jquery,image,dimensions,Javascript,Jquery,Image,Dimensions,可能重复: 通常,我们可以使用$('img').width()或$('img').css('width')获得图像宽度,当指定宽度时,如下所示 <img src="image.gif" width="32" height="32" /> <img src="image.gif" style="width: 32px; height: 32px" /> 但如果我们不指定宽度: <img src="image.gif" /> IE将返回28px,FF

可能重复:

通常,我们可以使用
$('img').width()
$('img').css('width')
获得图像宽度,当指定宽度时,如下所示

<img src="image.gif" width="32" height="32" />
<img src="image.gif" style="width: 32px; height: 32px" />

但如果我们不指定宽度:

<img src="image.gif" />

IE将返回28px,FF将返回0px

问题是,我们可能有意将图像宽度设置为28px或0px,这将导致与实际未设置宽度的情况相同的数字

我的问题是:我们如何判断一幅图像是否有特定的宽度/高度

编辑
抱歉,各位,忘记了一件重要的事情:IE上的28px和FF上的0px只有在找不到图像时才会发生(404)

检查
.attr('width')
/
.attr('height')
图像在浏览器中异步加载,因此这取决于检查尺寸的位置。我想您看到的是,当您查询宽度或高度时,图像尚未加载

如果运行此命令,您可能会看到初始警报()报告为0,但如果单击按钮,则会显示实际大小:

<img id="Image" src="images/MessageBoardLogo.png" />
<input type="button" id="Button" value="Caption" />

<script type="text/javascript">
$().ready( function() {
    imageSize();

    $("#Button").click(imageSize);
});
function imageSize()
{
    alert($("#Image").width());
}        
</script>

这是一种黑客行为,但您可以通过以下方式获得原始HTML:

var htmltag=$("img")[0].outerHTML;
然后将其解析为
width=“…”
style=“…”


有边界宽度为
border width
的边界情况,等等,但是你明白了。

更大的问题是通过类的宽度:使用
.wide{width:32px;}
IE使用
.width()
还是使用
.css('width')
返回28px?这是一个重复的问题。看到或@qodeninja-nah…完全不同。我正在寻找一种方法来检查是否给定了维度,而不是维度值。@user1643156-这是一样的。如果没有值,那么维度就没有设置。如果宽度是使用CSS显式设置的呢?我相信这只会检查是否指定了宽度/高度属性。@ahren那么你可以检查
.CSS('width')
,甚至可以查看
.attr('style')
。如果你不在乎它是用高度/宽度属性还是CSS声明设置的,如果需要计算图像的实际宽度和高度,可以使用
.height()
.width()
,那么.width()和.height()是更好的选择,因为它首先查找实际图像大小,然后在实际图像宽度不可用时检查属性。在.width()和.height()上使用.attr('width')/.attr('height')不应该有任何理由。感谢Wolfgang,但是在外部css文件中设置的样式无法通过您的方法检测到。(是的,我没有提到外部css)
var htmltag=$("img")[0].outerHTML;
if (
    htmltag.match(/style=['"][^'"]*width:/) ||
    htmltag.match(/width=['"]/)
   ) alert("Has width");