Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/404.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 img.attr(';width';)返回零。。IE7_Javascript_Jquery_Image_Internet Explorer 7_Attr - Fatal编程技术网

Javascript jQuery img.attr(';width';)返回零。。IE7

Javascript jQuery img.attr(';width';)返回零。。IE7,javascript,jquery,image,internet-explorer-7,attr,Javascript,Jquery,Image,Internet Explorer 7,Attr,适用于除尝试使用以外的所有浏览器 .width() 反而 尝试使用 .width() 反而 您可以只使用jquery.hide()而不是display none,并在隐藏前将宽度存储在变量中?您可以只使用jquery.hide()而不是display none,并在隐藏前将宽度存储在变量中 .width() 可能会对您有所帮助,但至于IE7在这方面存在问题的原因,我认为可能与您的选择器有关 在IE中,我总是遇到:first和:last伪选择器的问题,它可能只是没有选择图像。 .attr()

适用于除尝试使用以外的所有浏览器

.width()
反而

尝试使用

.width()
反而


您可以只使用jquery.hide()而不是display none,并在隐藏前将宽度存储在变量中?

您可以只使用jquery.hide()而不是display none,并在隐藏前将宽度存储在变量中

.width()
可能会对您有所帮助,但至于IE7在这方面存在问题的原因,我认为可能与您的选择器有关

在IE中,我总是遇到
:first
:last
伪选择器的问题,它可能只是没有选择图像。
.attr()
display:none
afaik中没有任何错误

希望这有帮助

编辑: 尝试将此添加到您的小提琴中:

var imgWidth = $($('#test').html()).attr('width');
alert(imgWidth);
这是一个有点老套的解决办法,但可能会奏效。我已经尝试过IE7,但无法使用IE7进行测试,当我加载JSFIDLE>时,它会抛出一个脚本错误:(

编辑: 最后的手段,正则表达式:

var imgWidth = $('#test').html().search(/width=[\"\'][0-9]+/);
alert(imgWidth);
可能会对您有所帮助,但至于IE7在这方面存在问题的原因,我认为可能与您的选择器有关

在IE中,我总是遇到
:first
:last
伪选择器的问题,它可能只是没有选择图像。
.attr()
display:none
afaik中没有任何错误

希望这有帮助

编辑: 尝试将此添加到您的小提琴中:

var imgWidth = $($('#test').html()).attr('width');
alert(imgWidth);
这是一个有点粗糙的解决方法,但可能会奏效。我已经尝试过,但无法使用IE7进行测试,当我加载JSFIDLE>时,它会抛出一个脚本错误:(

编辑: 最后的手段,正则表达式:

var imgWidth = $('#test').html().search(/width=[\"\'][0-9]+/);
alert(imgWidth);

尝试以下解决方法:使用
可见性:隐藏;位置:绝对
而不是
显示:无
。然后加载图像并将其放置在一边,以便计算宽度

当您想稍后显示图像时,请同时将其更改回
位置:relative


尝试以下解决方法:使用
可见性:隐藏;位置:绝对
而不是
显示:无
。然后加载图像并将其放置在一边,以便计算宽度

当您想稍后显示图像时,请同时将其更改回
位置:relative



你必须等待图像加载才能获得宽度!

你必须等待图像加载才能获得宽度!

阅读我的说明,我说我不能使用img.width(),因为这需要加载所有图像,我不能等那么久。(正确吗?)阅读我的说明,我说我不能使用img.width()因为这需要加载所有图像,我不能等那么久。(正确吗?)我刚刚更改了小提琴,删除了:first,但问题仍然是..width()需要加载图像,我需要document.ready处的宽度-它就在源代码中,为什么他们不能返回它..谢谢,有趣的想法,但它不起作用;图像内部没有HTML。我需要outerHTML。但也许我会尝试克隆对象?尽管这会增加内存使用量..将更新为tel我告诉你这是否有效。嗯,克隆也会返回零。不幸的是,你确实给了我一个主意:var result=thumbnail.parent().html().match(/width=[“']?([0-9]+)/);--regex.。这里的每个人似乎都不喜欢的东西。但它有效。这将是我的第二个建议:)我刚换了小提琴,去掉了:第一个,但问题仍然是..width()需要加载图像,我需要document.ready处的宽度-它就在源代码中,为什么他们不能返回它..谢谢,有趣的想法,但它不起作用;图像内部没有HTML。我需要outerHTML。但也许我会尝试克隆对象?尽管这会增加内存使用量..将更新为tel如果可以的话,请告诉我。好吧,克隆也返回零。不幸的是,你给了我一个主意:var result=thumbnail.parent().html().match(/width=[“]”]?([0-9]+)/);--正则表达式。。这里的每个人似乎都讨厌的。。但它是有效的……这将是我的第二个建议:)请在问题中包含您的代码,然后如果您愿意,可以添加JSFIDLE链接作为补充。您不能升级到最新的jQuery?@ŠimeVidas不,我不能,我只是注意到它在1.6.3中有效—(只有第一个.attr('width'),第二个.getAttribute('width'))仍然不起作用-你知道为了解决这个问题改变了什么内部结构吗?嘿..我想不是..(@Wesley
getAttribute('width'))
不是jQuery方法,它是内置在浏览器中的,所以升级jQuery时不能期望它开始工作
:P
。为什么不能升级?@mblase75不认为这是重复的,这个问题是关于.width()-这是关于.attr('width')(没有正确回答)请在问题中包括您的代码,然后如果您愿意,请包括JSFIDLE链接作为补充。您不能升级到最新的jQuery?@ŠimeVidas不,我不能,我只是注意到它在1.6.3中有效-(只有第一个.attr('width'),第二个.getAttribute('width'))仍然不起作用-你知道为了解决这个问题改变了什么内部结构吗?嘿..我想不是..(@Wesley
getAttribute('width'))
不是jQuery方法,它是内置在浏览器中的,所以升级jQuery时不能期望它开始工作
:P
。为什么不能升级?@mblase75不认为这是重复的,这个问题是关于.width()-这是关于.attr('width')(没有正确回答)我想这会奏效?隐藏它,获得宽度,然后显示它?jQuery实际上会在隐藏对象时为您保存对象。从文档中可以看出:匹配的元素将立即隐藏,没有动画。这大致相当于调用.css('display','none')),除了display属性的值保存在jQuery的数据缓存中,以便以后可以将display恢复为其初始值。我想我也可以这样做:检查attr的diff是否大于零。如果不是,则显示div,再次获取attr,然后隐藏