0

Is there anyway to do this:

    if (document.getElementById("x").value == 2 || document.getElementById("x").value == 3) {
         //Do somthing
    }

# Can I make it simple in some kind a way like this, I tried but it didn't work:

    if (document.getElementById("x").value == 2 || 3) {
         //Do somthing
    }
4

9 回答 9

5

就像其他答案的替代方案一样,如果您出于某种原因不想在该范围内声明另一个变量:

if (["2", "3"].indexOf(document.getElementById("x").value) > -1) {
    // Do something
}

请注意,较旧的浏览器不支持Array.prototype.indexOf,因此您需要包含一个 polyfill来处理它。

于 2013-04-11T13:58:25.307 回答
2

有些不同:

if (document.getElementById("x").value in {2:0,3:0}) {
    //Do something
}

我个人在这种情况下使用它 - 它通常实际上是最短的(尤其是当“OR”堆积时)。

于 2013-04-11T14:01:03.150 回答
2

您建议的方式行不通,因为您已经意识到自己。该|| 3部分将始终为,因此 if 语句中的代码将始终运行。

如果要使 if 语句更具可读性,可以将值保存在变量中,并在 if 语句中使用该变量。像这样的东西:

var xVal = document.getElementById("x").value;
if (xVal == 2 || xVal == 3) {
     //Do somthing
}
于 2013-04-11T13:57:39.540 回答
0

像下面这样尝试它会帮助你

小提琴:http: //jsfiddle.net/RYh7U/129/

脚本:

var value = document.getElementById("x").value;
if ((value in [,1,2]))
alert("Do SomeThing");

完整脚本:

<html>
<head>
<script type='text/javascript'>

function check()
{
   var value = document.getElementById("txtin").value;
   if ((value in [,1,2,3]))
     alert("Do SomeThing");
}

</script>
</head>
<body>
    <a href="#" onclick='check()'>check</a>
    <input type="text" id="txtin"/>
</body>
</html>
于 2013-04-11T14:01:59.430 回答
0

尝试这个

var x=document.getElementById("x").value;

if (x == 2 || x == 3) {
         //Do somthing
    }
于 2013-04-11T14:02:09.833 回答
0

你可以事先得到这个值,这会让它读起来更清楚

var yourValue = document.getElementById("x").value

if (yourValue == 2 || yourValue == 3) 
于 2013-04-11T13:57:44.353 回答
0
var myValue = document.getElementById("x").value;

if(myValue == 2 || myValue == 3) {
    //...
}
于 2013-04-11T13:57:51.927 回答
0

使用现代浏览器:

if( [2,3].indexOf(document.getElementById('x').value) > -1)

旧版本的 IE 将需要一个 shim 来实现这一点。或者您可以自己实现它:

function in_array(needle,haystack) {
    var l = haystack.length, i;
    for( i=0; i<l; i++) {
        if( haystack[i] == needle) return true;
    }
    return false;
}
// ...
if( in_array(document.getElementById('x').value,[2,3])) {
于 2013-04-11T13:59:15.563 回答
0

如果你想在值为 2 或 3 时做某事,你只需要写

if (document.getElementById("x").value == 2 || document.getElementById("x").value == 3) {
    //Do something
}
于 2013-04-11T13:59:22.170 回答