2014-12-20 95 views
5

由于标题“我可以在一个变量中有多个值吗?”我可以在一个变量中有多个值吗?

首先,我有这种形式:

<form name="myform"> 
<input type="text" name="mytext"> 
<input type="button" onClick="clickButton()"> 
</form> 

然后,看看我的脚本。

<script> 
function clickButton() { 
    var x = document.myform.mytext.value; 
    var a = 13; 
    var b = 17; 
    var c = 19; 

    if (x == a) { 
    alert('hello'); 
    } else if (x == b) { 
    alert('hello'); 
    } else if (x == c) { 
    alert('hello'); 
    } else { 
    alert('goodbye'); 
    } 
} 
</script> 

有什么办法让一个变量具有多个值吗? Like,var myvalues=1,2,3;

+5

给回调使用数组? https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Array – therealrootuser

+0

不,没有这样的变量。但是你可以使用'array'甚至'object'。 – sadrzadehsina

+0

另一个选择是使用字符串,你可以在你的文本框中输入'“1,2,3”',然后在'if'语句中寻找那些子字符串 –

回答

4

对您的问题的正确答案是使用array。但是,从你想要做什么,看起来你找一个object,特别是bracket notation

function clickButton() { 
 
    var x = document.myform.mytext.value, 
 
    greetings = { 
 
     "13": "hello", 
 
     "17": "hello", 
 
     "19": "hello" 
 
    } 
 
    alert(greetings[x] || "goodbye"); 
 
}
<form name="myform"> 
 
    <input type="text" name="mytext"> 
 
    <input type="button" onClick="clickButton()" value="greet"> 
 
</form>

0

你所需要的就是一个Array。数组是一个可以保存多个值和/或元素的变量。您可以为其指定值,然后使用[n]选择器,其中n是介于0(第一个元素)和2之间的数字(在本例中为2,因为您只有3个变量,所以它们的位置将为0,1, 2)。

然后,为了使代码更清晰,可以使用switch()语句来检查值并在找到某个值时执行某些代码。

下面是一个例子:

function clickButton() { 
    var x = document.myform.mytext.value, 
    values = [13, 17, 19]; 

    switch (x) { 
     case values[0]: 
     case values[1]: 
     case values[2]: 
      alert("hello"); 
      break; 

     default: 
      alert("goodbye"); 
      break; 
    } 
} 
-1

使用一个对象和值

function abc(val){ 

     alert(val); 
    } 

var doSomething = { 
    "1": abc('1');, 
    "2": abc('2');, 
    "3": abc('3'); 
    } 
相关问题