如何获得网格卡上的ninternext点击?

发布于 2025-02-04 10:47:43 字数 1075 浏览 2 评论 0原文

请帮助我从网格卡中获得ninternef。

CSS文件;

.container1 {
  display: grid;
  grid-template-columns: auto auto auto auto;
  column-gap: 10px;
  justify-content: space-evenly;
}
.posts {
  width: 13rem;
  margin: 10px auto 10px auto;
  height: 17rem;
  background: white;
  box-shadow: 0 8px 16px 0 rgba(0,0,0,0.2);
  border-radius: 10px;
}
<div class="container1">
  <div class="posts">
    <h3>Heading 1</h3>
  </div>
  <div class="posts">
    <h3>Heading 2</h3>
  </div>
  <div class="posts">
    <h3>Heading 3</h3>
  </div>
  <div class="posts">
    <h3>Heading 4</h3>
  </div>
  <div class="posts">
    <h3>Heading 5</h3>
  </div>
  <div class="posts">
    <h3>Heading 6</h3>
  </div>
</div>

如果我单击Grid3,依此类推,如何通过JavaScript获得直接的直观?

Please help me to get innerText of heading from grid card.

CSS File ;

.container1 {
  display: grid;
  grid-template-columns: auto auto auto auto;
  column-gap: 10px;
  justify-content: space-evenly;
}
.posts {
  width: 13rem;
  margin: 10px auto 10px auto;
  height: 17rem;
  background: white;
  box-shadow: 0 8px 16px 0 rgba(0,0,0,0.2);
  border-radius: 10px;
}
<div class="container1">
  <div class="posts">
    <h3>Heading 1</h3>
  </div>
  <div class="posts">
    <h3>Heading 2</h3>
  </div>
  <div class="posts">
    <h3>Heading 3</h3>
  </div>
  <div class="posts">
    <h3>Heading 4</h3>
  </div>
  <div class="posts">
    <h3>Heading 5</h3>
  </div>
  <div class="posts">
    <h3>Heading 6</h3>
  </div>
</div>

How can I get innerText of heading if I click on grid3 and so on through Javascript ?

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(3

终弃我 2025-02-11 10:47:44

这是可能对您有帮助的代码。通过添加一个单击功能。

html:

<div class="container1">
  <div class="posts">
    <h3 onclick="GetInnerText(this.innerHTML)">Heading 1</h3>
  </div>
  <div class="posts">
    <h3 onclick="GetInnerText(this.innerHTML)">Heading 2</h3>
  </div>
  <div class="posts">
    <h3 onclick="GetInnerText(this.innerHTML)">Heading 3</h3>
  </div>
  <div class="posts">
    <h3 onclick="GetInnerText(this.innerHTML)">Heading 4</h3>
  </div>
  <div class="posts">
    <h3 onclick="GetInnerText(this.innerHTML)">Heading 5</h3>
  </div>
  <div class="posts">
    <h3 onclick="GetInnerText(this.innerHTML)">Heading 6</h3>
  </div>
</div> 

JS:

function GetInnerText(text) {
  console.log(text);
}

参考链接

Here's the code which may help you. By add a onclick function.

HTML :

<div class="container1">
  <div class="posts">
    <h3 onclick="GetInnerText(this.innerHTML)">Heading 1</h3>
  </div>
  <div class="posts">
    <h3 onclick="GetInnerText(this.innerHTML)">Heading 2</h3>
  </div>
  <div class="posts">
    <h3 onclick="GetInnerText(this.innerHTML)">Heading 3</h3>
  </div>
  <div class="posts">
    <h3 onclick="GetInnerText(this.innerHTML)">Heading 4</h3>
  </div>
  <div class="posts">
    <h3 onclick="GetInnerText(this.innerHTML)">Heading 5</h3>
  </div>
  <div class="posts">
    <h3 onclick="GetInnerText(this.innerHTML)">Heading 6</h3>
  </div>
</div> 

JS :

function GetInnerText(text) {
  console.log(text);
}

Reference Link stackblitz

浅浅淡淡 2025-02-11 10:47:43

假设网格参考div.posts元素,您可以只使用文档方法 queryselectorall()要检索所有网格的列表,请使用 foreach()方法通过检索到的网格列表进行迭代,然后将单击的侦听器添加到每个网格中,以检索标题元素内部文字。

检查并运行以下代码段,以获取上述方法的实际示例:

const grids = document.querySelectorAll('div.posts');
grids.forEach(grid => grid.addEventListener('click', () => {
  console.log(grid.childNodes[0].textContent);
  alert(grid.childNodes[0].textContent);
}));
.container1 {display: grid; grid-template-columns: auto auto auto auto; column-gap: 10px; justify-content: space-evenly;}
.posts {width: 13rem; margin: 10px auto 10px auto; height: 17rem; background: white; box-shadow: 0 8px 16px 0 rgba(0,0,0,0.2); border-radius: 10px;}
<div class="container1">
  <div class="posts"><h3>Heading 1</h3></div>
  <div class="posts"><h3>Heading 2</h3></div>
  <div class="posts"><h3>Heading 3</h3></div>
  <div class="posts"><h3>Heading 4</h3></div>
  <div class="posts"><h3>Heading 5</h3></div>
  <div class="posts"><h3>Heading 6</h3></div>
</div>

Assuming grids refer to the div.posts elements, you can just use the the document method querySelectorAll() to retrieve a list of all the grids, use the forEach() method to iterate through the retrieved list of grids and then add a click listener to each grid that will retrieve the heading element's inner text.

Check and run the following Code Snippet for a practical example of the above approach:

const grids = document.querySelectorAll('div.posts');
grids.forEach(grid => grid.addEventListener('click', () => {
  console.log(grid.childNodes[0].textContent);
  alert(grid.childNodes[0].textContent);
}));
.container1 {display: grid; grid-template-columns: auto auto auto auto; column-gap: 10px; justify-content: space-evenly;}
.posts {width: 13rem; margin: 10px auto 10px auto; height: 17rem; background: white; box-shadow: 0 8px 16px 0 rgba(0,0,0,0.2); border-radius: 10px;}
<div class="container1">
  <div class="posts"><h3>Heading 1</h3></div>
  <div class="posts"><h3>Heading 2</h3></div>
  <div class="posts"><h3>Heading 3</h3></div>
  <div class="posts"><h3>Heading 4</h3></div>
  <div class="posts"><h3>Heading 5</h3></div>
  <div class="posts"><h3>Heading 6</h3></div>
</div>

挽梦忆笙歌 2025-02-11 10:47:43

我们可以通过 event委托书我想我只是尝试过它作为tbh的另一种方法

  • 尝试理解,在以这种方式实施之前的评论,请感谢@Roko的宝贵时间提供反馈
document.querySelector(".container1").addEventListener("click",(e)=>{
   if(e.target && e.target.closest(".posts")){
        console.log(e.target.textContent)
   }else{
    return;
   }
})
.container1 {
  display: grid;
  grid-template-columns: auto auto auto auto;
  column-gap: 10px;
  justify-content: space-evenly;
}
.posts {
  width: 13rem;
  margin: 10px auto 10px auto;
  height: 17rem;
  background: white;
  box-shadow: 0 8px 16px 0 rgba(0,0,0,0.2);
  border-radius: 10px;
}
<div class="container1">
  <div class="posts">
    <h3>Heading 1</h3>
  </div>
  <div class="posts">
    <h3>Heading 2</h3>
  </div>
  <div class="posts">
    <h3>Heading 3</h3>
  </div>
  <div class="posts">
    <h3>Heading 4</h3>
  </div>
  <div class="posts">
    <h3>Heading 5</h3>
  </div>
  <div class="posts">
    <h3>Heading 6</h3>
  </div>
</div>

We can do this by event delegation I guess, I just tried it as an other way tbh

  • Try to understand comments before implementing this way, Thanks @Roko for his valuable time to provide feedback

document.querySelector(".container1").addEventListener("click",(e)=>{
   if(e.target && e.target.closest(".posts")){
        console.log(e.target.textContent)
   }else{
    return;
   }
})
.container1 {
  display: grid;
  grid-template-columns: auto auto auto auto;
  column-gap: 10px;
  justify-content: space-evenly;
}
.posts {
  width: 13rem;
  margin: 10px auto 10px auto;
  height: 17rem;
  background: white;
  box-shadow: 0 8px 16px 0 rgba(0,0,0,0.2);
  border-radius: 10px;
}
<div class="container1">
  <div class="posts">
    <h3>Heading 1</h3>
  </div>
  <div class="posts">
    <h3>Heading 2</h3>
  </div>
  <div class="posts">
    <h3>Heading 3</h3>
  </div>
  <div class="posts">
    <h3>Heading 4</h3>
  </div>
  <div class="posts">
    <h3>Heading 5</h3>
  </div>
  <div class="posts">
    <h3>Heading 6</h3>
  </div>
</div>

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文