Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/430.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 jQuery添加到css元素_Javascript_Jquery_Css - Fatal编程技术网

Javascript jQuery添加到css元素

Javascript jQuery添加到css元素,javascript,jquery,css,Javascript,Jquery,Css,我有我的元素的id。我需要向元素的css属性之一添加一个给定的值(由javascript中的变量确定)。例如,给定一个元素id=my_id如何将x添加到该元素的margin top属性中?一种方法是,但给它一个0的持续时间。这允许您将+=运算符作为字符串发送,并连接x的值 var x = 50; $('#my_id').animate({marginTop: '+=' + x}, 0); 另一种方法是将函数作为第二个参数传递给。返回值将是当前值加上x。这需要jQuery 1.4或更高版本 一

我有我的元素的id。我需要向元素的css属性之一添加一个给定的值(由javascript中的变量确定)。例如,给定一个元素
id=my_id
如何将
x
添加到该元素的
margin top
属性中?

一种方法是,但给它一个
0
的持续时间。这允许您将
+=
运算符作为字符串发送,并连接
x
的值

var x = 50;

$('#my_id').animate({marginTop: '+=' + x}, 0);
另一种方法是将函数作为第二个参数传递给。返回值将是当前值加上
x
。这需要jQuery 1.4或更高版本

一种方法是使用,但给它一个持续时间
0
。这允许您将
+=
运算符作为字符串发送,并连接
x
的值

var x = 50;

$('#my_id').animate({marginTop: '+=' + x}, 0);
另一种方法是将函数作为第二个参数传递给。返回值将是当前值加上
x
。这需要jQuery 1.4或更高版本

当然,这是假设您始终使用px作为边距顶部值。我已经可靠地使用它很长时间了


当然,这是假设您始终使用px作为边距顶部值。我已经可靠地使用了很长一段时间。

如果
parseInt(value)
返回
NaN
,这将失败。你应该添加一些保护来防止这种可能性。Björn-不幸的是,在编辑时,它现在会100%返回
x
100%的值。因为
isNaN(value)
的计算结果总是
true
,所以您永远不会得到第二个return语句。这是因为当
边距顶部
确实有一个值时,
参数将给出
px
中的大小(比如
10px
),这不是一个数字……如果jQuery总是给出
px
值,那么原始的
parseInt()
答案就行了。在依赖它之前,我会做一些仔细的测试,然后可能仍然会有一个安全网。如果
parseInt(value)
返回
NaN
,这将失败。你应该添加一些保护来防止这种可能性。Björn-不幸的是,在编辑时,它现在会100%返回
x
100%的值。因为
isNaN(value)
的计算结果总是
true
,所以您永远不会得到第二个return语句。这是因为当
边距顶部
确实有一个值时,
参数将给出
px
中的大小(比如
10px
),这不是一个数字……如果jQuery总是给出
px
值,那么原始的
parseInt()
答案就行了。在依赖它之前,我会做一些仔细的测试,然后可能仍然会有一个安全网.methodin-这会起作用,但您确实不需要执行
.replace('px','')
,因为这不会干扰
parseInt()
。另外,您不需要在
.css()
调用中添加
“px”
,因为传递整数时会假定这一点。最后一件事是,应该考虑缓存“代码”>MyOIDID<代码>元素,而不是连续选择两次。所有有效的点。parseInt一直都是这样吗?我一定在想我的ie6 Javascript days.methodin——我相信它是ie6安全的,但仔细检查也不是个坏主意。当然,有这样的保护措施不会有多大伤害。只是可能没有必要o) methodin-这会起作用,但您确实不需要执行
.replace('px','')
,因为这不会干扰
parseInt()
。另外,您不需要在
.css()
调用中添加
“px”
,因为传递整数时会假定这一点。最后一件事是,应该考虑缓存“代码”>MyOIDID<代码>元素,而不是连续选择两次。所有有效的点。parseInt一直都是这样吗?我一定在想我的ie6 Javascript days.methodin——我相信它是ie6安全的,但仔细检查也不是个坏主意。当然,有这样的保护措施不会有多大伤害。只是可能没有必要o)
var x = 20;
$('#my_id').css('margin-top', function(index, value) {
    if (isNaN(parseInt(value)))
        return x;

    return parseInt(value) + x
});
var inc = 20;
var mt = parseInt($('#my_id').css('margin-top').replace('px',''));
$('#my_id').css('margin-top',(mt+inc)+"px");