好的,你有一组变量:
var height1 = 10
var height2 = 20
...
var height7 = 70;
用户已经给出了输入,你需要获取其中一个变量的值,这里是代码:
if(window.location.hash) {
var hash = window.location.hash.substring(1);
var option_name = $('a[name=' + hash + ']').closest('[id^="option"]').attr("id");
var hash_div_height_id = "height" + option_name.substring(6);
$('a[name=' + hash + ']').closest('[id^="option"]').show();
$('a[name=' + hash + ']').closest('[id^="option"]').height(hash_div_height_id);
} else {
// No hash found
}
我现在的问题是我无法将“hash_div_height_id”(当前表示字符串“height1”或“height2”或jQuery返回的任何数字追加到字符串末尾)传递给高度函数这是一个字符串。
那我怎么能这样呢?我可以以某种方式转换字符串“height1”来表示之前建立的变量height1吗?
答案 0 :(得分:5)
将高度指定为对象的属性。
像...这样的东西。
var heightObj = {
height1 : 10,
height2 : 20,
height7 : 70
};
var hash_div_height_id = "height" + option_name.substring(6);
要访问特定媒体资源,请使用 [] 表示法访问该媒体资源
var newHeight = heightObj[hash_div_height_id];
$('a[name=' + hash + ']').closest('[id^="option"]').height(newHeight);
答案 1 :(得分:2)
假设变量是在全局范围内声明的,您只需执行window[hash]
因为您在全局范围内声明的任何变量都作为window
的prpoerty附加(假设代码在浏览器中运行)。你可以用点符号
window.height1
或使用属性名称作为键索引。那是
window["height1"]
由于您可以传递一个持有该键的变量,您只需执行
var hash = "height1"; //replace with the code you already have
var height = window[hash];
答案 2 :(得分:0)
您是否可以控制变量,因为高度数组会更适合您,如果失败,请自行创建数组,以便将高度1..X推入数组,然后您可以使用索引。