2013-03-22 58 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); 

這應該改變元件寬度。