首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >如何迭代使用Javascript更改id的DOM元素

如何迭代使用Javascript更改id的DOM元素
EN

Stack Overflow用户
提问于 2022-08-19 19:38:42
回答 4查看 97关注 0票数 1

我有36个id="square-1“、"square-2”等in的div,它们都位于网格6x6容器中。我希望它们都是正方形的,并且是网格中每个方格的大小。我想要做一个函数,以添加css到他们每一个,以确定他们在网格中的位置。在我看来,我可以用a for循环迭代它们,并应用"gridColumn =“a/b”,其中a和b相对于for循环中的i,所以我不必在css文档中指定36次。这有可能吗?说得通吗?非常初学者..。

代码语言:javascript
复制
    <div class="div-container">
        <div id= "square-1"></div>
        <div id= "square-2"></div>
        <div id= "square-3"></div>
        <div id= "square-4"></div>
        <div id= "square-5"></div>
        <div id= "square-6"></div>
        <div id= "square-7"></div>
         etc...
    </div>
EN

回答 4

Stack Overflow用户

回答已采纳

发布于 2022-08-19 20:12:45

通过CSS属性跟踪元素是脆弱的。如果您使用的是JavaScript,那么就让它来做繁重的工作。例如,不要用ids硬编码36 <div>,而是在循环的每一次迭代中创建一个<div>。在下面的例子中,容器是一个<main>,每个子框是一个<section>。每个<section>都被赋予一个order的CSS属性,一个相应的数字和一个id:"sq"+一个相应的数字。order属性适用于flex项在flex容器中的出现顺序。

代码语言:javascript
复制
const box = document.querySelector('main');

for (let i = 0; i < 36; i++) {
  const sec = document.createElement('section');
  sec.style.order = i;
  sec.id = `sq${i}`;
  box.append(sec);
}
代码语言:javascript
复制
html {
  font: 300 5vmin/1 Consolas
}

main {
  display: flex;
  flex-flow: row wrap;
  width: 12rem;
  height: 12rem;
  border: 1px solid red
}

section {
  width: 2rem;
  height: 2rem;
  outline: 1px dashed blue
}
代码语言:javascript
复制
<main></main>

票数 1
EN

Stack Overflow用户

发布于 2022-08-19 19:44:55

您可以抓取父元素并循环遍历子元素:

代码语言:javascript
复制
var element = document.getElementById('parentDiv');
var children = element.children;

for(var i=0; i<children.length; i++){
  var child = children[i];
  //apply changes
}

票数 0
EN

Stack Overflow用户

发布于 2022-08-19 19:46:33

因此,如果您只想通过DOM元素迭代,可以通过遍历. div容器中的每个div子元素来实现:

代码语言:javascript
复制
const squares = document.querySelectorAll('.div-container div')
for(let square of squares){
   square.classList.add('YOUR_CLASS')
}
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/73421540

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档