通过组合动态和静态文本返回变量值
Return a variable value by combining dynamic and static text
我有很多带有唯一ID的复选框,比如
<input id="apple" />
<input id="banana" />
<input id="orange" />
我还有一些变量,ID末尾附加了单词"Tree"。我可以在单击输入时获得ID,但我希望返回变量的值,而不是我构建的名称。
有人能指出我在这段代码中做错了什么吗?
$(document).ready(function(){
var appleTree = 1;
var bananaTree = 4;
var orangeTree = 2;
$('input').click(function() {
var ID = $(this).attr('id');
var combinedName = (ID + "Tree");
console.log(combinedName);
});
});
您必须创建一个哈希映射:
$(document).ready(function(){
var trees = {
appleTree:1, bananaTree:4, orangeTree:2
};
$('input').click(function() {
var ID = $(this).attr('id');
var combinedName = (ID + "Tree");
var treeVal = trees[combinedName];
console.log(treeVal);
});
});
您可以像John Green所说的那样创建哈希图,或者走eval:的邪恶(但更快)路线
console.log(eval(combinedName));
编辑:我并不是说真的更快(我不知道是不是),我只是说变化更少。
CombinedName只是您记录的一个字符串。我假设ID是苹果、香蕉或橙色(在本例中),并且您希望从与ID+"Tree"对应的变量中获得值
我建议将您的值放在一个以当前变量名为键的对象中。之后,您可以使用所创建的字符串引用对象,并获得值
$(document).ready(function(){
var values = {"appleTree": 1, "bananaTree": 4, "orangeTree": 2};
$('input').click(function() {
var ID = $(this).attr('id');
var combinedName = (ID + "Tree");
console.log(values[combinedName]);
});
});
相关文章:
- 如何在文本搜索后返回long/lat
- .val()不返回输入文本
- HTML如何根据javascript函数的返回值限制文本输入
- JSTree's data.rslt.obj.text()返回一个文本数组,而不是所需节点的文本
- 检查文本区域是否为空总是返回false
- PHP/Ajax/jquery/JON-在Ajax Post之后将echo文本中的一部分作为变量返回
- 如何从jQuery对象文本正确调用服务器端ASP.NET并将数据返回给jQuery
- 用Promises返回的数据替换出现的文本
- 在HTML表单中键入时返回文本
- 悬停在动画文本上后,文本淡入淡出不会返回
- 如何将答案返回到文本区域
- 如何添加 SVG 文本标记 从 JavaScript 函数返回的值
- 将JS变量作为文本返回以发送到Google Analytics
- 可以't在Chrome扩展上返回所选文本
- 如何返回jQuery对象中的文本节点
- jQuery文本返回NULL
- AJAX成功请求"消息文本"返回显示
- 如何操作regex从文本返回url数组
- jQM无文本返回按钮
- 通过组合动态和静态文本返回变量值