JavaScript 依次改变颜色

JavaScript Change Color in turn

我用 html 创建了一个 8x8 table。这些 table 有颜色。我想在 player1 转动时将背景颜色从红色更改为蓝色,而在 player2 转动时我想将背景颜色从蓝色更改为红色。

     function rollDice(){

   HTML = changeText(1);

  var status = document.getElementById("status");
  var d1 = Math.floor(Math.random() * 6) + 1;
  status.innerHTML = "You rolled "+d1+". Now take your lands!";
     }

.

      <!-- It's writing whose turn -->

     function changeText(idElement) {
        var element = document.getElementById('element' + idElement);
       if (idElement === 1 || idElement === 2) {
          if (element.innerHTML === 'Sıra 2. oyuncuda') element.innerHTML = 'Sıra 1. oyuncuda';
               else {
                    element.innerHTML = 'Sıra 2. oyuncuda';

               }
             }
          }

.

      <!-- Change table's color -->
      function change(idElement){
        var element = document.getElementById(idElement);

        if(element.style.background === 'blue')
            element.style.background = 'red';


           else{
             element.style.background = 'blue';
         } 
       }

这些是我在 html

中的按钮和文本字段
          <table>
          <tr>
        <td id="1" onclick="change(1)" style="background:Blue">
        1
        </td>
        <td id="9"onclick="change(9)" style="background:Blue">
         9
         </td>
        <td id="17"onclick="change(17)"style="background:Blue">
        17
        </td>
        <td id="25"onclick="change(25)"style="background:Blue">
        25
        </td>
        <td id="33" onclick="change(33)"  style="background:Red">
        33
        </td>
        <td id="41"onclick="change(41)"style="background:Red">
        41
        </td>
        <td id="49"onclick="change(49)"style="background:Red">
        49
        </td>
        <td onclick="change(57)"id="57"style="background:Red">
        57
        </td>
        </tr>
           </table>

.

 <div align="center"><h2 id="element1" onClick="javascript:changeText(1)">Sıra 1. oyuncuda</h2>
 <h2 id="element2" onClick="javascript:changeText(2)"></h2></div>
 <div style= "margin-top:10px" align="center">
 <div style= "margin-top:10px" id="die1" class="dice"></div>
 <button onclick="rollDice()">Roll Dice</button>
 <h2 id="status" style="clear:left;"></h2>
 </div>

我只想轮流改变tables的颜色。我该怎么做?

您的问题是您试图更改 element.style.background 而不仅仅是背景颜色。您需要更改:element.style.background颜色。

我使用 div "element1" 的 innerHTML 来根据播放器更改颜色。 玩家一不可能从红色变为蓝色,反之亦然。

查看 if 条件 ;)

function rollDice() {

  HTML = changeText(1);
  var status = document.getElementById("status");
  var d1 = Math.floor(Math.random() * 6) + 1;
  status.innerHTML = "You rolled " + d1 + ". Now take your lands!";
}

function changeText(idElement) {
  var element = document.getElementById('element' + idElement);
  if (idElement === 1 || idElement === 2) {
    if (element.innerHTML === 'Sıra 2. oyuncuda') element.innerHTML = 'Sıra 1. oyuncuda';
    else {
      element.innerHTML = 'Sıra 2. oyuncuda';

    }
  }
}

function change(idElement) {
  var element = document.getElementById(idElement);
  var bg = element.style.backgroundColor;
  var text = document.getElementById('element1').innerHTML;
  if (bg == 'Red' && text == 'Sıra 1. oyuncuda') element.style.backgroundColor = 'Blue';
  else if (bg == 'Blue' && text == 'Sıra 2. oyuncuda') {
    element.style.backgroundColor = 'Red';
  } else {
    alert("You are not allowed to do this")
  }
}
<table>
  <tr>
    <td id="1" onclick="change(1)" style="background:Blue">1</td>
    <td id="9" onclick="change(9)" style="background:Blue">9</td>
    <td id="17" onclick="change(17)" style="background:Blue">17</td>
    <td id="25" onclick="change(25)" style="background:Blue">25</td>
    <td id="33" onclick="change(33)" style="background:Red">33</td>
    <td id="41" onclick="change(41)" style="background:Red">41</td>
    <td id="49" onclick="change(49)" style="background:Red">49</td>
    <td onclick="change(57)" id="57" style="background:Red">57</td>
  </tr>
</table>
<div align="center">
  <h2 id="element1" onClick="javascript:changeText(1)">Sıra 1. oyuncuda</h2>

  <h2 id="element2" onClick="javascript:changeText(2)"></h2>
</div>
<div style="margin-top:10px" align="center">
  <div style="margin-top:10px" id="die1" class="dice"></div>
  <button onclick="rollDice()">Roll Dice</button>
  <h2 id="status" style="clear:left;"></h2>

</div>

您还忘记将 "tr" 放在 "table" 标签中 ;)

另一种方法是,如我的评论中所述,创建一个名为 player 的全局变量,并将轮到谁的信息保存在其中。

我也用这个版本做了一个Fiddle