Javascript 循环内的增量改变css值不';行不通
我试图在foreach中增加当前“top”属性值的值Javascript 循环内的增量改变css值不';行不通,javascript,jquery,zepto,Javascript,Jquery,Zepto,我试图在foreach中增加当前“top”属性值的值 我上面的代码有什么问题吗?forEach是数组的一部分。改用每个。您可以使用函数回调来增加当前元素的top属性 var percent = 50; $('div').each(function() { $(this).css('top', function(_, top){ return parseInt(top, 10) + percent; }); }); 但它并没有像你想的那样起作用。也许您应该尝试
我上面的代码有什么问题吗?
forEach
是数组的一部分。改用每个。您可以使用函数回调来增加当前元素的top
属性
var percent = 50;
$('div').each(function() {
$(this).css('top', function(_, top){
return parseInt(top, 10) + percent;
});
});
但它并没有像你想的那样起作用。也许您应该尝试类似于另一个答案的方法,它使用$.fn.prev
您不能将百分比(%)添加到px值,您需要转换其中一个
var px = 50;
$('div').each(function () {
$(this).css('top', parseInt($(this).prev().css('top')) + px);
});
你可以试试
var百分比=50;
$('div').css('top',function(i,obj){
收益率i*百分比;
});代码>
div{
宽度:50px;
高度:50px;
背景:红色;
位置:绝对位置;
顶部:10px;
左:10px;
}
$('div')
返回一个HTMLCollection,它不像您所想的那样精确到数组forEach
是一种数组方法。你的答案比我的好,但我有两个问题。1) top
不能是undefined
?(2)什么是(+top)
?+将字符串转换为int。我用小提琴测试了你的代码,它不起作用
var px = 50;
$('div').each(function () {
$(this).css('top', parseInt($(this).prev().css('top')) + px);
});