我希望创建一个简化的界面,要求用户选择三个单选按钮之一,如下所示:
<form id="icon-type">
<input type="radio" name="icon" value="apples" /> Apples
<input type="radio" name="icon" value="oranges" /> Oranges
<input type="radio" name="icon" value="graphes" /> Grapes
</form>
使用 jQuery 可以轻松确定已选择这三个中的哪一个:
var iconType = $('input[name=icon]:checked').val();
但是,我需要将分配给 iconType 的字符串转换为先前创建的同名对象。我读到 eval()
是执行此操作的最佳方法,但也遇到了许多警告,指出不应使用 eval()
。然而,似乎没有其他方法可以执行此转换。因此我的问题是:虽然我认识到 eval()
肯定会被滥用,但在这种情况下 eval()
确实是合适的方法吗?
非常感谢您的想法!
编辑:@DVK,谢谢!但还是有点失落;假设我的对象看起来像这样:
var apple = new GIcon(baseIcon);
apple.image = "http://localhost/images/apple.png";
var orange = new GIcon(baseIcon);
orange.image = "http://localhost/images/orange.png";
所以我需要将从所选单选按钮检索到的值转换为适当的对象引用。正如您所解释的,我如何将这些存储在哈希中?谢谢!
最佳答案
对于像这样的简单字符串,您也可以简单地将匹配的对象存储在哈希中,然后像这样访问
var obj = object_map[iconType];
关于javascript - 将字符串转换为 JavaScript 对象 - 有没有比使用 eval 更安全的方法?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/2259040/