jQuery:用变量字符串替换(连接)按钮值

时间:2012-02-09 22:29:02

标签: javascript jquery variables button jquery-mobile

所以,我有一个按钮,其值从变量和字符串连接起来:

$('#btn1').attr('value','question'+currid+'ans1').button('refresh');

例如,这将返回类似question5ans1的内容。现在,在javascript文档的顶部,此值作为变量与字符串相关联,如下所示:

var question5ans1 = "Sydney";

问题是该按钮显示“question5ans1”而不是“Sydney”。有没有办法解决/改变它?

3 个答案:

答案 0 :(得分:3)

使用eval将字符串计算为var。

$('#btn1').attr('value', eval('question'+currid+'ans1')).button('refresh');

而不是eval,更好的解决方案是在下面的对象中使用这样的var,

var questions = {'question5ans1' : 'Sydney' };

并在函数中,

$('#btn1').attr('value', questions['question'+currid+'ans1']).button('refresh');

答案 1 :(得分:0)

如果变量在全局范围内,您可以像这样获取它:

$("#btn1").val(window['question' + currid + 'ans1']);

答案 2 :(得分:0)

您应该将这些类型的变量附加到对象,因为您无法直接将字符串转换为变量名称。不应该使用eval

var q = {
    question3ans1: "London",
    question4ans1: "Tokyo",
    question5ans1: "Sydney"
};

$('#btn1').attr('value', q['question' + currid + 'ans1'] ).button('refresh');