到目前为止,我有以下代码:
$('.pagination').each(function(){
var paginationWidth = $(this).width();
var pixelOffset = '-' + paginationWidth + 'px';
console.log(paginationWidth.css('margin-left', pixelOffset ));
});
控制台日志显示“对象57没有方法'css'”,数字是宽度。为什么每个元素都是这种情况?如果它不是数组,为什么不能在每个所述元素上调用.css()?
答案 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 );