如何循环遍历一个 Div 元素块 N 次?

Posted

技术标签:

【中文标题】如何循环遍历一个 Div 元素块 N 次?【英文标题】:How to loop through a block of Div element N number of times? 【发布时间】:2021-10-26 03:51:46 【问题描述】:

我正在尝试将卡片彼此相邻显示(每行 4 张卡片)。这是我的卡片 html

    <div class="HelloWorldCard">
        <div class="cardwithlink">
            <div class="row">              
                <div class="Hellocard cardwithlink style="height: 170px;">
                    <a href="//www.https://www.google.com/" title="Google home page" target="">
                        <div class="content">
                            <div class="HelloTopSection" style="height: 110px;">
                                <div class="HelloCardTitle"> title </div>
                                <div class="HelloCardExcerpt"> description </div>
                            </div>
                        </div>
                    </a>
                </div>               
            </div>
        </div>
    </div>

<Script>
export default
name: "HelloWordCard",
props:
title: String,
description: String
,
;

我想在我的页面上显示大约 100 张卡片。我不能只是复制和过去这个 html 100 次,因为那会浪费时间。是否可以循环打印出这段 html 100 次?

我遇到的真正问题是卡片每行显示 1 张卡片。我试图让它们在每行显示 4 个。

【问题讨论】:

你可以试试 array.map() 方法吗? @DanielprabhakaranN 不确定这将如何工作。可以演示吗? 你能提供你的代码的完整sn-p吗?喜欢codeandbox? 这能回答你的问题吗? Vue Js - Loop via v-for X times (in a range) vuejs.org/v2/guide/list.html 【参考方案1】:

你的行不应该在你的卡片组件内。

它应该在持有卡片的父组件中,您可以在其中应用@Srijan Katuwal 的 CSS。例如:

<template>
  <div id="app">
    <div class="row">
      <HelloWorldCard
        v-for="index in 100"
        :key="index"
        title="Test"
        description="Test description"
      />
    </div>
  </div>
</template>

<script>
import HelloWorldCard from "./components/HelloWorldCard";

export default 
  name: "App",
  components: 
    HelloWorldCard,
  ,
;
</script>

<style>
.row 
  display: grid;
  grid-template-columns: repeat(4, auto);
  gap: 30px;

</style>

你的组件现在是:

<template>
  <div class="Hellocard cardwithlink" style="height: 170px">
    <a href="//www.https://www.google.com/" title="Google home page" target="">
      <div class="content">
        <div class="HelloTopSection" style="height: 110px">
          <div class="HelloCardTitle"> title </div>
          <div class="HelloCardExcerpt"> description </div>
        </div>
      </div>
    </a>
  </div>
</template>

<script>
export default 
  name: "HelloWordCard",
  props: 
    title: String,
    description: String,
  ,
;
</script>

你可以在这里看到它的实际效果:https://codesandbox.io/s/hungry-hodgkin-2sklq?file=/src/App.vue:0-476

【讨论】:

【参考方案2】:

您可以使用 v-for 指令将 div 块显示 n 次。 Vue官方文档有类似的例子v-for

另外,要在一行中显示 4 张卡片,您可以使用 CSS 网格或 flex。网格实现可以如下完成

.row 
  display: grid;
  grid-template-columns: repeat(4, auto);
  gap: 30px;

【讨论】:

无法看到这在我的情况下是如何工作的。【参考方案3】:

您需要编写以下 CSS 以显示彼此相邻的卡片

* 
  box-sizing: border-box;

.row 
    display: block;
    width: 100%;


.card 
   display: block;
   float: left;
   width: 25%;
   padding: 10px;
   border: 1px solid grey;
 
<div class="row">
  
  <div class="card">Card Data</div>
  <div class="card">Card Data</div>
  <div class="card">Card Data</div>
  <div class="card">Card Data</div>
  <div class="card">Card Data</div>
  <div class="card">Card Data</div>
</div>

【讨论】:

以上是关于如何循环遍历一个 Div 元素块 N 次?的主要内容,如果未能解决你的问题,请参考以下文章

python第四周程序控制之循环,randow库,圆周率的计算

javascript ,遍历数组 ,一次循环删除多个元素

javascript ,遍历数组 ,一次循环删除多个元素

jquery如何遍历dom对象

一次循环遍历 Javascript 数组多个元素的惯用方法是啥?

如何应用循环遍历 R 中的矩阵