javascript - 如何在每两个 v-for 生产标签之间插入一个新标签?

标签 javascript html css vue.js

有没有办法在每两个 v-for 生成的标签之间插入新标签? 喜欢Array.join() .

背景:

我想插入一个 <span>,</span>每两个之间<router-link></router-link> .

<router-link></router-link>v-for 制作,代码如下:

<router-link tag="a" 
             v-for="text in ['vue', 'react', 'JQuery']"
             :key="text"
>
  {{ text }} &nbsp;
</router-link>

运行它,看起来像这样:

vue react JQuery

不知道怎么直接插入<span>,</span>在这些之间所以我把它移到 <div> 中:

<div v-for="text in ['vue', 'react', 'JQuery']"
     :key="text">
   <router-link tag="a">
    {{ text }}
  </router-link>
  <span>,&nbsp;</span>
</div>

运行它,看起来像这样:

vue, react, JQuery,

所以问题是最后一个‘,’是多余的。 我可以通过 v-show 修复它:

<div v-for="(text, index) in ['vue', 'react', 'JQuery']"
     :key="text">
   <router-link tag="a">
    {{ text }}
  </router-link>
  <span v-show="index !== 2">,&nbsp;</span>
</div>

效果很好,但我想知道有没有简单的方法可以做到这一点?

感谢回复。

最佳答案

你最后的方法是要走的路,但你可能应该使用 Array.length 来处理最后一次出现的事件,以防数组发生变化。

<span v-show="index !== (items.length - 1)">,&nbsp;</span>

或者使用纯 CSS(注意我在 div 元素上添加类 route):

div.route:not(:last-child) > a::after {
  content: ',';
  text-decoration: none;
}

关于javascript - 如何在每两个 v-for 生产标签之间插入一个新标签?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/53975128/

相关文章:

javascript - 如何调用另一个函数的返回内部函数?

javascript - 通过单击 Google map 上的标记来打开 div 而不是 infowindow

html - 对齐引导缩略图组件

javascript - 试图让容器 div 在点击时改变高度

CSS多背景以不同速度滚动

javascript - 使用 php laravel 框架在 javascript 中生成动态 id

javascript - 为什么 Javascript 将 5 == 8 等同于 true?

html - 引导模态

html - 阴影未出现在背景图像 div 上

javascript - 单击下载按钮从 URL : dots in the URL are all replaced by underscore? 下载图像