if的多个条件

时间:2014-12-09 18:03:12

标签: javascript html if-statement html-table conditional-statements

我有一个带有<td>元素的8x8表,每个表都有自己唯一的ID(左下角有11个,右下角18个,右上角88个,左上角81个。)

现在我正在撰写IF声明,但我不知道如何指定条件。

我们说<td id="21">。这个应该符合条件,应该<td id="22">等。只要<td>在第二行。用手写这些条件似乎有点多余了?

var elemId1保存所选<td>;

的ID
case "♙":
{
    if(elemId1== (conditions))
    {
        //CODE TO MOVE THIS FIGURE      
    }
}
break;`

4 个答案:

答案 0 :(得分:2)

您最好使用data attributes

<table>
    <tr>
        <td id="81" data-row="8" data-column="1"></td>
        <td id="82" data-row="8" data-column="2"></td>
        <td id="83" data-row="8" data-column="3"></td>
        <td id="84" data-row="8" data-column="4"></td>
        ...
    </tr>
    <tr>
         <td id="71" data-row="7" data-column="1"></td>
         ...
    </tr>
    ...
</table>
然后你可以说:

if (document.getElementById(elemId1).dataset.column === "8") {
    // CODE TO MOVE THIS FIGURE
}

如果你肯定想坚持使用id中的行和列进行编码,你可以使用一些整数数学来解码它:

var row = Math.floor(elemId1 / 10);
var column = elemId1 % 10;

%是模数运算符;它给出除法的余数)

答案 1 :(得分:0)

你可以这样做:

if((elemId1==condition) || (elemId1==condition2) || (elemId1==condition3))//etc...
{
    //CODE TO MOVE THIS FIGURE      
}

||是逻辑OR运算符意味着如果elemId1 == condition OR elemId1 == condition2等...&amp;&amp;是逻辑AND运算符......

答案 2 :(得分:0)

您可以使用括号和逻辑运算符来使用多个条件。您并不总是需要使用括号,但在某些情况下它可以确定优先级。

JavaScript中的逻辑运算符:

  • &安培;&安培; (和)
  • || (或)
  • ! (不)

以下内容为“如果a等于4且b等于5”:

if (a === 4 && b === 5)
if ((a === 4) && (b === 5))  // this works too (extra parentheses)

以下内容为“如果a等于4或5”:

if (a === 4 || a === 5)

以下内容为“如果a不是5且b为1或2”:

if (a !== 5 && (b === 1 || b === 2))

编辑:澄清之后,我想您正在询问如何检查一个变量是否等于多个值之一?您可以使用Array.indexOf执行此操作,该0返回找到给定元素的数组中的位置(如果未找到,则返回-1)。然后,您可以将该方法的输出转换为布尔值(您要执行此操作,因为var haystack = [1, 2, 3, 4, 5]; var needle = 4; var needle_missing = 7; if (!!~haystack.indexOf(needle)) // true if (!!~haystack.indexOf(needle_missing)) // false 表示找到该元素,但评估为falsy)。

.indexOf

如果您想在IE8中使用{{1}},那么您将使用polyfill

答案 3 :(得分:0)

if( elemId1.substr(0,1) == "2" ) { ... }

对于id为2的所有单元格都是如此(全部在第二行)。