为什么循环中的if-then语句中的if不起作用?

时间:2018-10-23 01:54:32

标签: javascript html if-statement

总是达到elseif条件什么也没做。

这是较大功能的一部分。在HTML中,有2个输入:年龄和电话号码。在脚本中,numberArray由这两个值(年龄和电话号码)的变量组成。

此for语句应该使输出显示在身份证上(在我的评论中)如下:“年龄:17”。 else条件工作正常,并显示为“电话号码:[数字输入]”,因此我不明白if条件的问题。

function idCard() {
var firstName = document.getElementById('firstName').value;
var lastName = document.getElementById('lastName').value;
var address = document.getElementById('address').value;
var phoneNumber = parseInt(document.getElementById('phoneNumber').value);
var age = parseInt(document.getElementById('age').value);

document.getElementById("postFullName").innerHTML = firstName + lastName;
document.getElementById("postAddress").innerHTML = address;
document.getElementById('postAge').innerHTML = age;
document.getElementById('postPhoneNumber').innerHTML = phoneNumber;

var numberArray = [];
numberArray.push("age");
numberArray.push("phoneNumber");
for (var i = 0; i < 2; i++) {
    if (numberArray[i] <= 100){
        document.getElementById("postAge").innerHTML = "Age: " + age;
    }
    else {
        document.getElementById("postPhoneNumber").innerHTML = "Phone Number: " + phoneNumber;
    }

}

3 个答案:

答案 0 :(得分:1)

numberArray[i]当前是字符串“ age”或“ phoneNumber”。好像是一个小错字,我猜你是要推送变量吗?

var numberArray = [age, phoneNumber];

// or if you must push
var numberArray = [];
numberArray.push(age);
numberArray.push(phoneNumber);

答案 1 :(得分:0)

您的if语句未运行的原因是,您的numberArray的前两个元素大于100-我不能说是因为您没有共享那部分代码,但这就是您发布的内容。

答案 2 :(得分:0)

如果我没有误解您的问题,那么怎么办?如果我传递两个数字一个小于100 ,另一个大于100 。因此,在那种情况下,前者将被视为年龄,而后者将是电话号码。

在您的代码上,您使用了这样的代码块,该代码块在此内容中是错误的,因为它将产生['age','phoneNumber'];而不是age和{{1}的数字版本}

phoneNumber

numberArray = [];
numberArray.push("age");
numberArray.push("phoneNumber");
console.log(numberArray); // will produce ['age','phoneNumber'];
var phoneNumber = 4567890; // I assume this is what you get as phoneNumber
var age = 15;              // I assume this is what you get as age
numberArray = [];
numberArray.push(age); // see change here without quotes
numberArray.push(phoneNumber); // see change here without quotes

for (var i = 0; i < 2; i++) {
  if (numberArray[i] <= 100) {
    document.getElementById("postAge").innerHTML = "Age: " + numberArray[i];
  } else {
    document.getElementById("postPhoneNumber").innerHTML = "Phone Number: " + numberArray[i];
  }

}