Jquery每个都无法调用方法

时间:2013-12-30 13:45:28

标签: jquery

到目前为止,我有以下代码:

$('.pagination').each(function(){
    var paginationWidth = $(this).width();
    var pixelOffset = '-' + paginationWidth + 'px';
    console.log(paginationWidth.css('margin-left', pixelOffset ));
});

控制台日志显示“对象57没有方法'css'”,数字是宽度。为什么每个元素都是这种情况?如果它不是数组,为什么不能在每个所述元素上调用.css()?

4 个答案:

答案 0 :(得分:2)

这里的问题与each循环无关。 .width() jQuery方法返回一个值,然后您尝试设置该值的CSS属性。每个循环中的$(this)仍然是对象。

你最后一行想成为这样。

$(this).css('margin-left', pixelOffset )

答案 1 :(得分:1)

试试这个,

$('.pagination').each(function(){
    var page=$(this);
    var paginationWidth = page.width();
    var pixelOffset = '-' + paginationWidth + 'px';
    console.log(page.css('margin-left', pixelOffset ));
});

$(this).width()不返回对象。它返回一个整数,表示它的宽度。

答案 2 :(得分:1)

我认为你想要做的是$(这个)...字面上,如果你原谅这个笑话......见下文。

('.pagination').each(function(){
   var paginationWidth = $(this).width();
   var pixelOffset = '-' + paginationWidth + 'px';
   console.log($(this).css('margin-left', pixelOffset ));
);

答案 3 :(得分:0)

jQuery就像

一样

$(选择器)。功能/事件(.....

但是paginationWidth不是选择器。选择器是要选择的对象。

最好使用

$('any-selector-to apply-margin-left').css('margin-left', pixelOffset );