2

这可能真的是一个非常基本的问题,但我已经尝试了几件事,但似乎没有用。

我有这个变量:

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

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

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

但这些似乎不起作用。

所以我想w在一个函数中使用来设置#el宽度。所以我不想使用$("#el").width(),因为我会经常使用它。我需要使用该变量。

4

7 回答 7

5

.width()接受一个参数。

 $("#el").width(100);//set width to 100
于 2013-03-22T13:09:58.087 回答
4

如果你让 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);
   };
})();

...然后你可以这样做:

w();//get the width
w(50);//set the width
于 2013-03-22T13:10:32.380 回答
3

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

相反,您需要这样做:

$("#el").width(50);
于 2013-03-22T13:10:54.333 回答
2
w = $("#el").width(); 

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

为了改变 el 的宽度,你只需要使用函数参数:

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

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

w = 50;
$("#el").width(w); 
于 2013-03-22T13:11:24.597 回答
1

看这里

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

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

你可以这样做

于 2013-03-22T13:10:06.063 回答
1

尝试 :

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

有关详细信息,请参阅width() 文档

于 2013-03-22T13:11:17.197 回答
0
w = 50;

这只会改变变量值。

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

这应该改变元素宽度。

于 2013-03-22T13:13:46.787 回答