得到" undefined不是一个功能"错误

时间:2015-03-27 22:01:19

标签: javascript jquery css

我已经经历了几个与此相关的问题,但尚未找到答案。所以这是产生错误的代码:

function centerGalImages() {
    var len = $('.image').filter(':visible').length;
    for (var i = 0; i < len; i++ {
        var contWidth = $('.img-container')[i].width();
        var imgWidth = $('.image')[i].width();
        var leftOffset = (contWidth/2) - (imgWidth/2);
        img.css({left: leftOffset});
    }
}

我收到调用width()的错误。 我是JS / JQuery的新手,但对我来说这看起来应该有用。 css文件已加载到html文件之前的jquery文件中,此处是与.image.img-container相关的CSS:

.image {
   width: auto;
   height: 100%;
   position: relative;
}

.img-container {
   display: inline-block;
   width: 24.5%;
   height: 200px;
   overflow: hidden;
}

非常感谢任何有关为何width()拨打电话无效的想法

编辑:这里要求的是相关的HTML:

<div>
    <div class="img-container"><img class="image clickable" src=""/></div>
    <div class="img-container"><img class="image clickable" src=""/></div>
    ...container/image elements are copied 16 times...
</div>

在jquery文件的开头设置src值。因此,在调用时间centerGalImages()时,已设置src

1 个答案:

答案 0 :(得分:4)

使用此代码

$('.img-container')[i].width();

您正试图调用width的{​​{1}}方法。哪个不存在。因此错误。 HTMLImageElement是jQuery实例的方法,因此它应该是

width

UPD。根据HTML结构,这可能看起来更好:

$('.img-container').eq(i).width();