Jquery each()丢失$(this)值

Jquery each()丢失$(this)值,jquery,width,positioning,each,Jquery,Width,Positioning,Each,我的保证金值在这里设置为零,我不明白为什么 $(document).ready(function() { $('img.thumbNormal').each(function(){ $(this).css({'position':'relative', 'left':'50%', 'margin-left':-$(this).width()/2}); }); }); 如果我在控制台中运行同一行,结果就是您所期望的 任何帮助都将不胜感激。谢谢 您需要在加载图像后执行此操作 $(w

我的保证金值在这里设置为零,我不明白为什么

$(document).ready(function() {
  $('img.thumbNormal').each(function(){
    $(this).css({'position':'relative', 'left':'50%', 'margin-left':-$(this).width()/2});
  });
});
如果我在控制台中运行同一行,结果就是您所期望的


任何帮助都将不胜感激。谢谢

您需要在加载图像后执行此操作

$(window).load(function() {
    $('img.thumbNormal').each(function(){
        $(this).css({'position':'relative', 'left':'50%', 'margin-left':-$(this).width()/2});
    });
});

您当前正在
$(document).ready()
上执行此操作,它不会等待图像加载,图像的
.width()
在完全加载之前为
0

您需要在图像加载后执行此操作

$(window).load(function() {
    $('img.thumbNormal').each(function(){
        $(this).css({'position':'relative', 'left':'50%', 'margin-left':-$(this).width()/2});
    });
});

您当前正在
$(document).ready()
,它不会等待图像加载,图像的
.width()
在完全加载之前是
0

是否有其他代码或样式表可能会干扰?我想您甚至可以省略。每个,因为
$('img.thumbNormal').css(bla)
已经解决了这个问题。在我看来,代码很好,在这里工作也很好()可能您有其他代码/css冲突。我将尝试在$(this).width()周围加一个括号。我猜你试过用firebug调试。我将引入一个变量并调试是否有任何其他代码或样式表可能会产生干扰?我想您甚至可以省略。每个都可以,因为
$('img.thumbNormal').css(bla)
已经解决了这一问题。我觉得代码看起来很好,在这里也很好()可能您有其他代码/css冲突。我将尝试在$(this).width()周围加一个括号。我猜你试过用firebug调试。我将引入一个变量并进行调试