2

我是 Javascript 的新手。我正在制作一个手机动画来说明概率。我有一个 iPhone 的图形和所有按键的按钮。当按下一个按钮时,相应的数字会显示在电话屏幕上(我画的框和 ID 为“电话”)。但是有一些规定:例如3位区号和3位前缀不能以1开头(等等)。所以我有在附加文本之前必须满足的条件。这是我按下按钮时输入数字 1 的代码:

var phone = document.getElementById("phone");

if(phone.value.length == 0) {
phone.innerHTML = phone.innerHTML + "";
}

else if(phone.value.length == 6) {
phone.innerHTML = phone.innerHTML + "";
} 

else if(phone.value.length == 3) {
phone.innerHTML = phone.innerHTML + "1)";
} 

else if(phone.value.length == 8) {
phone.innerHTML = phone.innerHTML + "1-";
} 

else if(phone.value.length == 2) {
phone.innerHTML = phone.innerHTML + "";
} 
else {
phone.innerHTML = phone.innerHTML + "1";
} 

不幸的是,这段代码不起作用。如果我注释掉除了类似的所有代码

var phone = document.getElementById("phone");
phone.innerHTML = phone.innerHTML + "1)";

然后它工作。所以我假设我没有条件句的正确语法。谢谢!

4

2 回答 2

1

由于您的工作示例innerHTML,phone可能不是一个input元素。所以你必须使用innerHTML而不是value为了获取字符串并比较它的长度。

代替

if (phone.value.length == 0)
....

if (phone.innerHTML.length == 0)
....

在你的条件语句中。

于 2013-07-01T13:21:43.573 回答
0

这行得通吗?

var phone = document.getElementById("phone");
var addition = "";    

switch(phone.value.length){
   case: 0
   case: 6
       addition = "";
       break;
   case: 3
       addition = "1";
       break;
     .......//put rest of your cases here and dont forget default: break;
}


phone.innerHtml += addition;

我所做的更改:

  • 如果你有这么多 if 语句,最好使用 switch 语句
  • 我添加了一个新变量addition,它保存必须附加到手机的 innerhtml 的字符串,因此您只需更改一次 innerHtml。
于 2013-07-01T13:18:23.420 回答