如何将变量附加到另一个变量名称?

时间:2015-06-02 10:33:46

标签: javascript

所以我有这个简单的条件:

var q1 = document.forms["quizForm"]["q1"].value;

我必须像这样重复5次:

var q1 = document.forms["quizForm"]["q1"].value;
var q2 = document.forms["quizForm"]["q2"].value;
var q3 = document.forms["quizForm"]["q3"].value;
var q4 = document.forms["quizForm"]["q4"].value;
var q5 = document.forms["quizForm"]["q5"].value;

但相反,我想使用这样一个简单的循环:

for (n = 1; n < 5; n++) { 
        var qn = document.forms["quizForm"]["qn"].value;
    }

那么如何将数字 n 添加到变量 q ?那么在循环中看起来像q n ,而不是q1?

所以如果我使用这个循环:

function submitAnswers(){
    var total = 5;
    var score = 0;

    for (n = 1; n <= 5; n++) { 
        var qn = document.forms["quizForm"]["q" + n].value;
    }

    //Validation 
    if( ! q1){
        alert('You missed question 1');
        return false;
    }

}

验证不会触发,就像q1不存在一样。

但如果我接下来会触发:

function submitAnswers(){
    var total = 5;
    var score = 0;

    var q1 = document.forms["quizForm"]["q1"].value;

    //Validation 
    if( ! q1){
        alert('You missed question 1');
        return false;
    }

}

所以我猜qn并没有将qn声称为值。

我试图实现这样的事情:

for (n = 1; n <= 5; n++) { 
        eval('var q' + n + '=document.forms['quizForm']['q' + n + '].value;');
        alert(q1);
    }

但到目前为止没有运气。

3 个答案:

答案 0 :(得分:3)

您可以在循环内进行验证,并在同一循环中进行分数计算。

var total = 5;
var score = 0;
for (i = 1; i <=n; i++) {
    if(document.forms["quizForm"]["q" + i].value == ""){
        alert("You missed question " + i);
        return false;
    } 
    score += document.forms["quizForm"]["q" + i].value;
 }

答案 1 :(得分:3)

您可以在循环

中查看无效问题
function submitAnswers(){
var total = 5;
var score = 0;

for (n = 1; n <= 5; n++) { 
    var qn = document.forms["quizForm"]["q" + n].value;
 //Validation 
if( ! qn){
    alert('You missed question '+n);
    break;
}

}

}

答案 2 :(得分:1)

它应该工作。 Javascript隐式转换类型。在您的情况下,使用+运算符就足够了。

SELECT * FROM table1 AS t1 INNER JOIN table2 AS t2 ON t1.latitude=t2.latitud OR t2.longitude=t1.longitude WHERE t1.latitude='#enter the value#' AND t1.longitude='#enter the value#'

顺便说一句,根据你的第一个例子,你的循环应该看起来像

SELECT * FROM table1 AS t1 INNER JOIN table2 AS t2 ON t1.latitude=t2.latitud OR t2.longitude=t1.longitude 

或者它不会命中n === 5.