javascript - 如何使用 jQuery 指定选定的 contenteditable 标签?

标签 javascript jquery html

我正在编写一个在线数独游戏,我想在用户选择一个单元格时更改每个单元格的背景颜色。例如,当我选择一个包含“4”的单元格时,其中每个具有“4”值的单元格必须变为红色,并且在更改所选单元格后,每个具有“4”值的单元格的背景更改为默认背景(这里是白色). enter image description here

注意每个<td> </td>代表一个细胞。选择一个单元格意味着鼠标光标在该单元格中。

  1. 如何指定用户选择了哪个单元格? (鼠标光标是 在里面)
  2. 如何指定用户悬停在哪个单元格上? (鼠标光标在 它)

更多信息:

数独表的 HTML 摘要是这样的:

<table>
    <tr>
      <td contenteditable="true"></td>
      <td contenteditable="false">2</td>
      <td contenteditable="false">3</td>
    </tr>
    <tr>
      <td contenteditable="false">4</td>
      <td contenteditable="true"></td>
      <td contenteditable="true"></td>
    </tr>
<table>

最佳答案

Use focus and blur events

$('table').on('focus input', 'td[contenteditable]', function() {
  $('td[contenteditable]').css('background-color', '');
  var val = this.textContent;
  if (val) {
    $('td[contenteditable]:contains(' + val + ')').css('background-color', 'red');
  }
});
$('table').on('blur', '[contenteditable]', function() {
  $('td[contenteditable]').css('background-color', '');
});
table,
td {
  border: 2px solid black;
}
<script src="https://ajax.googleapis.com/ajax/libs/jquery/1.11.0/jquery.min.js"></script>
<table>
  <tr>
    <td contenteditable="true"></td>
    <td contenteditable="false">2</td>
    <td contenteditable="false">3</td>
  </tr>
  <tr>
    <td contenteditable="false">4</td>
    <td contenteditable="true"></td>
    <td contenteditable="true"></td>
  </tr>
</table>

关于javascript - 如何使用 jQuery 指定选定的 contenteditable 标签?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/37565805/

相关文章:

javascript - javascript中的电子邮件验证

javascript - 无法在 AWS Lambda 中使用 NPM 包,require() 损坏

javascript - 构造函数作为对象键

javascript - 在Firefox中隐藏元素时,YouTube播放停止

javascript - 如何在移动浏览器上获取 pageYoffset

javascript - 为适应现有 Angular 应用程序的 RTL 而测试的方法

javascript - 如何复制 'not in' 或 'where' 行为?

javascript - 如何在jquery中隐藏数据过滤器?

javascript - HTML 段落没有变成一条直线

javascript - Bootstrap Popover 的文本太长