Javascript 选择值时获取正确的var配置

Javascript 选择值时获取正确的var配置,javascript,jquery,html,Javascript,Jquery,Html,我有这个var配置 var room_type = $("#room-type").val(); var room_price_1 = '1500'; var room_price_2 = '0'; var room_price_3 = '0'; var total = room_price_'+room_type+''; alert(total); 我想知道已经定好的房车的房价。如果房间类型是1,我想得到房间的价格,价格,等等。如需向我显示房间\u价格\u[所选房间价值]请尝试: va

我有这个var配置

var room_type = $("#room-type").val();

var room_price_1 = '1500';
var room_price_2 = '0';
var room_price_3 = '0';

var total = room_price_'+room_type+'';

alert(total);
我想知道已经定好的房车的房价。如果房间类型是1,我想得到房间的价格,价格,等等。如需向我显示
房间\u价格\u[所选房间价值]

请尝试:

var total = window['room_price_'+room_type];
只有在全局范围内定义了总计时,才会正常工作。

替换

var total = room_price_'+room_type+'';


设置一个对象来保存此信息会更容易,IMO:

var room_type = $("#room-type").val(); // 1

var roomPrice = {
  1: 1500,
  2: 0,
  3: 0
};

var total = roomPrice[room_type]; // 1500

与其攻击变量调用,我建议使用数组:

var room_type = $("#room-type").val();

var room_prices = ['1500','0','0'];

var total = room_prices[(room_type-1)];

alert(total);
您可以这样做:

var total = eval('room_price_'+room_type);
如果您使用:

window['room_price_'+room_type]
您将无法更改上下文,必须在窗口上下文中创建变量。
另一种方法是创建一种以房间类型为键、以价格为值的地图,而不是使用不同的变量。

您能提供您的HTML或更好的地图吗fiddle@user3008011(imho)没有必要,这很清楚enough@RoyiNamir你是对的,我误解了这个问题。我这样做了
var total=window['room\u price\u'+room\u type];警报(总数)但如果显示所选值,则显示未定义:P为1或2或3。但我成功了。谢谢你抽出时间。祝您愉快,先生!我想知道我是否投了反对票,我决定不投反对票,而是请您编辑您的答案,并指出,仅当您在窗口上下文中创建变量时,这是可能的。就像在控制台中创建变量一样。添加了一些描述文本。谢谢,这也是wokred!我喜欢你这样做。谢谢你,我找过这样的东西,但不知道怎么做。谢谢@曼多·马达林:如果你想接受,投票图标下面有一个绿色标志。
window['room_price_'+room_type]