如何基于数据属性(jQuery)获取特定的HTML元素。

我有多个 <td> 带有数据属性的元素 cell-pos,设置为不同的值,如下面的代码。

  setUpGrid($gameArea) { 
    for (let rowIdx = 0; rowIdx < this.board.gridSize; rowIdx++) { 
      const $tr = $("<tr>");
      $gameArea.append($tr); 
      for (let colIdx = 0; colIdx < this.board.gridSize; colIdx++) { 
        const $td = $("<td>");
        $td.data("cell-pos", [rowIdx, colIdx]);
        $tr.append($td);
      }
    }
  }

如果我想检索一个 <td> 元素的cell-pos值为[10,10],我应该怎么做?我知道在 .attr() 我能够只用选择器 $('td[data-cell-pos="[10,10]"]') 但在这里,我设置了数据属性,使用 .data() 因为我不想在HTML标记上直接暴露数据属性值(这正是 .attr() 确实如此)

希望能得到任何帮助,谢谢!

解决方案:

一种方法是找到所有匹配的元素,然后在它们的基础上过滤 cell-pos 数据值是一样的。例如(用几个 divs):

$('#div1').data('cell-pos', [5, 4]);
$('#div2').data('cell-pos', [4, 5]);

console.log($('div').filter(function() {
  let cellpos = $(this).data('cell-pos');
  return JSON.stringify(cellpos) === JSON.stringify([4, 5]);
}).text());
<script src="https://cdnjs.cloudflare.com/ajax/libs/jquery/3.3.1/jquery.min.js"></script>
<div id="div1">Div 1</div>
<div id="div2">Div 2</div>

给TA打赏
共{{data.count}}人
人已打赏
解决方案

从数组中获取随机抽样的项目,其中项目(也是数组)的事情总量为X。

2022-5-11 10:00:14

解决方案

Djnago,是否可以用一个模型创建多个状态选择?

2022-5-11 10:00:16

0 条回复 A文章作者 M管理员
    暂无讨论,说说你的看法吧
个人中心
购物车
优惠劵
今日签到
有新私信 私信列表
搜索