.each()方法仅适用于IE中的第一个元素

时间:2011-10-16 15:07:54

标签: javascript jquery methods

我有一个像这样的jQuery:

$('#corner .photo img').each(function() {
    var $img = $(this);
    var h = $img.height();
    var w = $img.width();
    $img.css('margin-top', +h / -2 + "px").css('margin-left',+ w/ -2 + "px");
});

它适用于除IE 7和8之外的所有浏览器。在这些浏览器中,它只将新属性应用于#corner的第一个元素(这是第一个.photo img)。

如果删除#corner,它将适用于其中的“.photo img”的所有实例。但是,我无法删除id #corner,因为HTML的其他部分正在使用“.photo img”,我不希望将此jQuery脚本应用于所有。我只希望它在#corner中应用。

有没有办法解决这个问题?

修改

我的不好,显然文档中有多个具有相同名称的div,导致IE中的问题。我把它们改成了类,现在可以了。

1 个答案:

答案 0 :(得分:0)

你可以尝试

$('#corner').find('.photo img').each(...

顺便说一句,IE不喜欢具有相同ID的多个项目。如果您以这种方式使用多个id="corner"项,则将其更改为类,您应该没问题。