改变ie8上父元素的宽度

时间:2014-01-09 13:33:27

标签: javascript jquery html internet-explorer-8

我有一个图像,我希望它的父元素具有与图像相同的宽度。我在加载事件上执行此操作,因此设置了图像的宽度。图像存在于DOM中。这是jsfiddle;

http://jsfiddle.net/8epfz/

这是我脚本中的实际加载事件处理程序;

matchParentOnLoad: function(e){
    var imgWidth   = this.naturalWidth || this.width;
    var imgParent  = ($(this).parent().length>0) ? $(this).parent() : $(this.parentNode);
    imgParent.width(imgWidth);
}

在IE8标准模式下,imgParent的长度始终等于零。我该如何解决这个问题?

2 个答案:

答案 0 :(得分:0)

这通常是因为在加载图像之前尝试使用图像,因此其尺寸未知。尝试推迟直到加载:

$(window).load(function(){
    var imgw = $("#myimg");
    var prt = $("#parentel");
    prt.width(imgw.width());
});

参考:http://api.jquery.com/load-event/

答案 1 :(得分:0)

你应该测试一下:

$(this).parent().length != -1 // Instead of $(this).parent().length>0