javascript - Jquery,如果ID包含字母 'X'

标签 javascript jquery html

我在编码方面还是个新手,我的数学老师给了我们一个国际象棋问题,我想使用 javascript 生成所有可能的解决方案。

问题是:在 5x5 的棋盘上仅使用 5 个皇后,并将它们放置在只有 3 个区域未被攻击的位置

现在我陷入困境,因为我的 JQuery 无法工作。

你可以在这里查看代码:http://jsfiddle.net/hjespshw/1/ 或者

HTML:

<h2>TextBox value : <label id="msg"></label></h2>
<input id="textbox" value="1" />
<button id="Get">Click</button>

<table>
  <tr>
    <td id="1"></td>
    <td id="2"></td>
    <td id="3"></td>
    <td id="4"></td>
    <td id="5"></td>

  </tr>
  <tr>
    <td id="6"></td>
    <td id="7"></td>
    <td id="8"></td>
    <td id="9"></td>
    <td id="10"></td>

  </tr>
  <tr>
    <td id="11"></td>
    <td id="12"></td>
    <td id="13"></td>
    <td id="14"></td>
    <td id="15"></td>

  </tr>
  <tr>
    <td id="16"></td>
    <td id="17"></td>
    <td id="18"></td>
    <td id="19"></td>
    <td id="20"></td>

  </tr>
  <tr>
    <td id="21"></td>
    <td id="22"></td>
    <td id="23"></td>
    <td id="24"></td>
    <td id="25"></td>

  </tr>


</table>

Javascript:

$("#Get").click(function() {
  var bla = $('#textbox').val();
  bla = '#' + bla;
  $('#msg').html($('#textbox').val());
  $(bla).text("X");

  $( "td:contains('X')" ).css( "background-color", "red" );
  if ($( "td:contains('X')" )) {
        // for every td containing x make adjecent ones turn red
    if ($("#1:contains('X')")) {
        $("#2").css( "background-color", "red" );
      $("#3").css( "background-color", "red" );
      $("#4").css( "background-color", "red" );
      $("#5").css( "background-color", "red" );
      $("#6").css( "background-color", "red" );
      $("#7").css( "background-color", "red" );
      $("#11").css( "background-color", "red" );
      $("#13").css( "background-color", "red" );
      $("#16").css( "background-color", "red" );
      $("#19").css( "background-color", "red" );
      $("#21").css( "background-color", "red" );
      $("#25").css( "background-color", "red" );
    } else if ($("#2:contains('X')")) {
        $("#1").css( "background-color", "blue" );
      $("#2").css( "background-color", "blue" );
      $("#3").css( "background-color", "blue" );
      $("#4").css( "background-color", "blue" );
      $("#5").css( "background-color", "blue" );
      $("#7").css( "background-color", "blue" );
      $("#8").css( "background-color", "blue" );
      $("#12").css( "background-color", "blue" );
      $("#14").css( "background-color", "blue" );
      $("#17").css( "background-color", "blue" );
      $("#20").css( "background-color", "blue" );
      $("#22").css( "background-color", "blue" );
    }

    }
});

CSS:

table {
  margin-top: 10px;
}

table tr td {
  width: 40px;
  height: 40px;
  border: solid blue 3px;
}

td {
  text-align: center;
}

当您输入 1 并单击按钮时,一切正常,但当您输入 2 时,它的工作方式就像您输入 1 一样。

如果我删除

if ($("#1:contains('X')")) {
    $("#2").css( "background-color", "red" );
  $("#3").css( "background-color", "red" );
  $("#4").css( "background-color", "red" );
  $("#5").css( "background-color", "red" );
  $("#6").css( "background-color", "red" );
  $("#7").css( "background-color", "red" );
  $("#11").css( "background-color", "red" );
  $("#13").css( "background-color", "red" );
  $("#16").css( "background-color", "red" );
  $("#19").css( "background-color", "red" );
  $("#21").css( "background-color", "red" );
  $("#25").css( "background-color", "red" );
} else

然后当你输入 2 时,它就会按照它应该的方式工作

感谢您的帮助!

最佳答案

您的代码始终停止在 1 的原因是因为您的 if 结构如下

if () {}
else if () {}

在命中第一个 if 后(始终为 true),else if 也无法命中。您需要为 if 语句使用不同的值,例如 $('#textbox').val()

例如:

if ($('#textbox').val() == 1) { /* one positions */ }
else if ($('#textbox').val() == 2) { /* two positions */ }

这是我的 fiddle fork :http://jsfiddle.net/hpv1oyaL/

关于javascript - Jquery,如果ID包含字母 'X',我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/48773158/

相关文章:

javascript - 使用 dojo 验证/清除所有输入框

jquery - Toggle addClass 删除 span

javascript - 如何做一个可爱的DIV半径

javascript - 背景图片的 CSS/JS 幻灯片

javascript - 无论单击哪一个,都会打开最后一个 Google map 标记的信息窗口

javascript - 根据条件获取对象计数

javascript - 为什么我应该使用导出的常量设置 redux 操作类型?

php - 在网格上的随机位置设置一个 div

jquery - 滚动背景图像

html - 清除任何 CSS 样式的 div 及其内容