我有一个由用户输入的变量searchFor。单击按钮时,我希望显示(用户输入的姓名)的年龄数据。但是,我不能让这个工作:
$('#output').html("object: " + searchingFor +
"<br> age: " + searchingFor.age );
在代码的最后,我需要searchFor.age来获取用户输入年龄的年龄,而是尝试检索对象的年龄&quot; searchFor&#39;
例如:如果用户输入&#39; jack&#39;,则searchFor将等于&#39; jack&#39;然后代码将检索插孔年龄,并输出它。
答案 0 :(得分:0)
从我如何解释您的问题,您希望动态引用预定义的变量。如果这是一个错误的假设,请告诉我。
如果是这种情况,您可以在全局范围内定义对象并引用它们:
var jack = {
age: "22"
};
var sally = {
age: "25"
};
$(function () {
var searchingFor = "jack";
console.log(window[searchingFor].age);
});
不建议将事物放在全局范围内。最好创建一个具有名称,年龄等属性的人物对象数组,迭代该数组并将项目名称与searchFor值进行比较,如下所示:
$(function () {
var people = [
{
name: "jack",
age: "22"
},
{
name: "sally",
age: "25"
}
];
var searchingFor = "jack";
$.each(people, function (index, element) {
if (element.name === searchingFor) {
console.log(element.age);
return false;
}
});
});
根据@ Barmar的评论
$(function () {
var people = {
jack: {
age: "22"
},
sally: {
age: "25"
}
};
var searchingFor = "jack";
console.log(people[searchingFor]);
});