使用表单字段值作为JavaScript变量的引用
我试图使用HTML表单字段的值来定义我在JavaScript函数中使用的变量。我有一个解决方案,但我认为有一个更优雅的方法 我有两个名称数组,男性和女性,我的HTML表单有一组男性和女性的单选按钮。提交时,我会这样做:使用表单字段值作为JavaScript变量的引用,javascript,jquery,Javascript,Jquery,我试图使用HTML表单字段的值来定义我在JavaScript函数中使用的变量。我有一个解决方案,但我认为有一个更优雅的方法 我有两个名称数组,男性和女性,我的HTML表单有一组男性和女性的单选按钮。提交时,我会这样做: gender = $("#gender input:checked").val(); //get value of checked button if (gender == "male" ) { name = male[Math.floor(Math.random()*m
gender = $("#gender input:checked").val(); //get value of checked button
if (gender == "male" ) {
name = male[Math.floor(Math.random()*male.length)];
} else {
name = female[Math.floor(Math.random()*female.length)];
}
$("#result").html(name);
我的解决方案是if-else,但我想知道是否有什么东西可以将性别值转换为对同名变量的引用。然后我可以用这样的东西替换if-else:
name = gender[Math.floor(Math.random()*gender.length)];
我很想听听你的想法。谢谢 如果
男性
/女性
是全局变量,则可以在窗口
对象中找到它们。在这种情况下,您应该能够使用
name = window[gender][Math.floor(Math.random() * window[gender].length)];
其中
gender
必须是有效的变量名。但是,我不鼓励您使用全局变量。改为使用属性为male
和female
的本地对象,您可以将性别放入对象中:
var genderData = {
male: [ ... ]
female: [ ... ]
}
然后使用以下语法:
genderData[gender][Math.floor(Math.random() * genderData[gender].length)]
您还可以将其简化一点,使内容更具可读性:
var gd = genderData[gender];
name = gd[Math.floor(Math.random() * gd.length)];
谢谢,这很有效。该键将字段值作为对象属性名称应用。看起来不错。