2011-12-30 76 views
2

可能重複:
「Variable」 Variables in Javascript?動態(可變)變量(如PHP?)

我想肯定有一種方法在JavaScript實現動態或可變的變量( jQuery) 在php中,我們可能有很多...

<?php 
$params = array("street", "city", "state","zip_code"); 
foreach($params as $key) $$key = some_function($key); 
echo $city; // would output the result of some_function(city); 
?> 

但我看不到的方式來完成jQuery中(JavaScript)的 相似的地方,我想有這樣的事情......

<script> 
params =["street", "city", "state","zip_code"]; 
jQuery.each(params, function() { 
    var var this = jQuery('#'+this).val(); 
}); 
alert(city); 
</script> 

不工作(當然的),但有必須是一種方式?

回答

3

在不受PHP限制的語言中,使用「變量變量」是不必要的。

addr = {}; 
params =["street", "city", "state","zip_code"]; 
jQuery.each(params, function() { 
    addr[this] = jQuery('#'+this).val(); 
}); 
alert(addr.city); 

在Javascript中,addr["city"]addr.city指的是同樣的事情。

+1

PHP有你正在使用的JavaScript同一陣列功能。變量變量只是增加了靈活性。 – Sam152 2011-12-30 02:38:23

+0

好的。酷... 我有點兒在一些非常相似的東西上跳舞,但是你的解決方案爲我帶來了焦點。謝謝 儘管像Sam152,我更喜歡將變量變量看作 靈活模式 – WallabyKid 2011-12-30 02:40:44

+0

似乎只是簡單地調用動態生成的變量$ city(在「受限制」的PHP場景中)比記住稍後調用更簡單addr [「city」]或javascript版本中的addr.city。只是我2美分。 – WallabyKid 2011-12-30 02:47:20

0

落戶以下(這只是一點點清潔恕我直言)

params =["street", "city", "state","zip_code"]; 
jQuery.each(params, function() { 
    params[this] = jQuery('#'+this).val(); 
}); 
alert(params.city); // or params['city'];