javascript - 遍历同一行的元素

标签 javascript html css arrays match

我创建了一个带有 div 和 span 的自定义表,我想在这个表上添加一个数组中的值,该数组遍历所有 span 单元格,但我真的不知道该怎么做。

<div class="cust_table">
  <div id="mytab1" class="row">
    <span class="cell">***</span>
    <span class="cell">***</span>
    <span class="cell">***</span>
    <span class="cell">***</span>

  <div class="row">
    <span class="cell">***</span>
    <span class="cell">***</span>
    <span class="cell">***</span>
    <span class="cell">***</span>
  </div>
  <div class="row">
    <span class="cell">***</span>
    <span class="cell">***</span>
    <span class="cell">***</span>
    <span class="cell">***</span>
  </div>
</div>

所以我有这个数组:

var arry = [];
for (var i = 1; i <= 3; i++) {
   arry.push(i);
}

我想把它的所有值从 1 到 3 写在跨度单元格上

var sel = document.querySelectorAll(.cell);

最终将数组中的位置与行单元格中的位置进行匹配。

最佳答案

您可以使用 getElementsByClassName() 按类名获取元素 方法并在 Array.from() 的帮助下迭代它们 Array#forEach 方法。哪里 Array.from() 有助于将 Nodelist 转换为数组和 Array#forEach 有助于迭代它们。

var arr = [1, 2, 3, 4];

Array.from(document.getElementsByClassName('row')).forEach(function(ele) {
  Array.from(ele.getElementsByClassName('cell')).forEach(function(e, i) {
    e.textContent = arr[i];
  });
})
<div class="cust_table">
  <div id="mytab1" class="row">
    <span class="cell">***</span>
    <span class="cell">***</span>
    <span class="cell">***</span>
    <span class="cell">***</span>
  </div>
  <div class="row">
    <span class="cell">***</span>
    <span class="cell">***</span>
    <span class="cell">***</span>
    <span class="cell">***</span>
  </div>
  <div class="row">
    <span class="cell">***</span>
    <span class="cell">***</span>
    <span class="cell">***</span>
    <span class="cell">***</span>
  </div>
</div>


仅供引用: Array.from() 方法是在 ES6 中引入的,所以使用 [].slice.apply()对于较旧的浏览器,还要检查 polyfill option for Array#forEach method .


更新: 使用 Math.random() 从数组中随机添加元素生成索引 和更新。

var arr = [1, 2, 3];

Array.from(document.getElementsByClassName('cell')).forEach(function(e, i) {
  // generate index value within `0` and `arr.length - 1` and get element
  e.textContent = arr[Math.round(Math.random()*(arr.length-1))];
});
<div class="cust_table">
  <div id="mytab1" class="row">
    <span class="cell">***</span>
    <span class="cell">***</span>
    <span class="cell">***</span>
    <span class="cell">***</span>
  </div>
  <div class="row">
    <span class="cell">***</span>
    <span class="cell">***</span>
    <span class="cell">***</span>
    <span class="cell">***</span>
  </div>
  <div class="row">
    <span class="cell">***</span>
    <span class="cell">***</span>
    <span class="cell">***</span>
    <span class="cell">***</span>
  </div>
</div>

关于javascript - 遍历同一行的元素,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/38847333/

相关文章:

javascript - 将 _.countBy 与范围一起使用

javascript - 3种不同类型的JavaScript对象,有什么区别?

javascript - 为什么在 Selenium Webdriver (Java) 中 Gmail 密码字段无法发送带有 "sendkeys"的 key ?

ios - CSS 位置 : fixed in iOS 9 iPhone 6+ in landscape mode 的问题

html - 如何让这个 HTML 元素居中?

javascript - 获取文档的值

javascript - 如何随时间改变背景不透明度?

javascript - 如何发送我的动态价格立即购买 Paypal 按钮

html - 在没有相应 th 的情况下将额外的 td 添加到 tr

html - 在CSS中的嵌入式SVG路径上使用类