【问题标题】:How to loop through list and add images如何遍历列表并添加图像
【发布时间】:2017-05-19 00:58:27
【问题描述】:

我有一组包含 6 张图像的工件。

var artifacts = [
  'http://placehold.it/50x150',
  'http://placehold.it/100x125',
  'http://placehold.it/150x100',
  'http://placehold.it/200x50',
  'http://placehold.it/150x75',
  'http://placehold.it/100x100'
];

我正在尝试将工件作为背景图像添加到列表中的每个列表项。

<ul class="slick-dots">
  <li>1</li>
  <li>2</li>
  <li>3</li>
  <li>4</li>
  <li>5</li>
  <li>6</li>
  <li>7</li>
  <li>8</li>
  <li>9</li>
  <li>10</li>
</ul>

如果列表中的工件数量超过它的数量,它将从开头开始,并将工件添加到数组的 [0] 位置。

出于某种原因,我不知道应该如何使用 javascript 来解决这个问题。

Codepen:http://codepen.io/H0BB5/pen/MJYgdz

【问题讨论】:

  • 请将相关代码添加到您的帖子中。
  • 循环遍历您的li 元素列表。为您的图像阵列保留一个单独的计数器。当计数器到达数组的末尾时重置它...

标签: javascript jquery html css loops


【解决方案1】:

css() 方法与内部迭代的回调一起使用。其中第一个参数是索引,并根据该值从数组中获取值以生成 css 属性值。

var artifacts = [
  'http://placehold.it/50x150',
  'http://placehold.it/100x125',
  'http://placehold.it/150x100',
  'http://placehold.it/200x50',
  'http://placehold.it/150x75',
  'http://placehold.it/100x100'
];

$('ul.slick-dots li').css('background-image', function(i) {
  return "url('" + artifacts[i % artifacts.length] + "')";
})
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>
<ul class="slick-dots">
  <li>1</li>
  <li>2</li>
  <li>3</li>
  <li>4</li>
  <li>5</li>
  <li>6</li>
  <li>7</li>
  <li>8</li>
  <li>9</li>
  <li>10</li>
</ul>

【讨论】:

  • 哇!这很有效,把戏就好了。你能解释一下这是如何工作的吗?我对“%”感到困惑谢谢!
  • @h0bb5 : 其中i 指的是元素索引.....所以i % artifacts.length 将用于计算索引..... 它计算余数(在范围或数组索引0,1,......,arrayLength-1) ......如果索引达到arrayLength => i % artifacts.length 结果0, arrayLength + 1 => i % artifacts.length 结果1.... 等等
猜你喜欢
  • 1970-01-01
  • 2021-05-17
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2014-07-16
  • 1970-01-01
  • 1970-01-01
  • 2022-01-24
相关资源
最近更新 更多