Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/jquery/82.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 循环内的增量改变css值不';行不通_Javascript_Jquery_Zepto - Fatal编程技术网

Javascript 循环内的增量改变css值不';行不通

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”属性值的值


我上面的代码有什么问题吗?

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);
});