2013-03-22 62 views
2

这可能确实是一个非常基本的问题,但我已经尝试了几件事情,但似乎并不奏效。更改已设置的变量的值

我有这样的变种:

w = $("#el").width(); 

而且我想通过VAR改变#el的宽度。因此,使用var w设置宽度,而不用重新使用整个$("#el").width()。我怎么做?我已经尝试了以下内容:

w = 50; 
w == 50; 
w = "50px"; 
w == "50px"; 

但是,这些似乎并不奏效。

所以我想使用w在函数中设置#el的宽度。所以我不想使用$("#el").width(),因为我打算使用它很多。我需要使用该变种。

+2

你能解释清楚吗 – PSR 2013-03-22 13:09:42

+0

你最终做了什么? – 2013-03-24 15:29:13

+0

@BenjaminGruenbaum无论如何,毕竟我并不真的需要它。我把这个元素放在一个var中,并给这个var一个宽度,这样就工作了。不幸的是,你的答案并不是我所需要的。你解释一下'width()'的基本用法,但我明白这一点。我没有开始工作的是通过'var'设置宽度。不管怎么说,还是要谢谢你。 – 2013-03-24 15:38:21

回答

4

...那么你可以做:

w();//get the width 
w(50);//set the width 
+0

这是OP要求的正确答案。 – BenM 2013-03-22 13:12:53

+0

你为什么改变它?编辑完成后,每次访问它时都会发出DOM调用,但我知道这不是我的答案,但我觉得我应该建议进行编辑,如果您不喜欢它可以随意恢复。 – 2013-03-22 13:26:30

+0

以前的版本没有工作 - 保留函数对象是不够的,你也需要实例。 – sje397 2013-03-22 13:28:26

5

.width()接受参数。

$("#el").width(100);//set width to 100 
+0

不幸的是你的答案并不是我所需要的。你解释一下'width()'的基本用法,但我明白这一点。我没有开始工作的是通过'var'设置宽度。不管怎么说,还是要谢谢你。 – 2013-03-24 15:38:48

1

see here

var w = $("#el").width(); 

$("#el").width(w); 

如果您W¯¯按住功能

var w = (function() { 
    var $el = $("#el"); //cache the query selector to only use once 
    return function(x){ 
     if(typeof x ==="undefined"){ 
      return $el.width(); 
     } 
     return $el.width(x); 
    }; 
})(); 

你可以做到这一点

3

您的变量不是。这是它分配时的宽度的副本。更改变量不会改变实际宽度。

相反,你需要这样做:

$("#el").width(50); 
2
w = $("#el").width(); 

只是将el的宽度值传递给w,而不是参考值。这意味着w在生成该语句时拥有一个等于el宽度的整数。

为了改变EL的宽度,你只需要使用的功能参数:

$("#el").width(50); 

不,使用功能与参数改变函数的返回类型。$("#el").width(50);不返回新宽,所以不能使用该语句 w = $("#el").width(50);为了同时更新您的变量,并基于该变量的实际宽度,它必须像这样来完成:

w = 50; 
$("#el").width(w); 
0
w = 50; 

这只会改变变量值。

$("#el").width(w); 

这应该改变元件宽度。