【发布时间】:2016-11-28 09:40:34
【问题描述】:
我有 3 个锚块,当我加载页面时,我想要 3 个不同的随机 background-colors。然而,只有第一个锚点是随机变化的background-color。这是我使用的 HTML 和 jQuery 代码:
<script type="text/javascript">
$(document).ready ( function () {
var color = '#'; // hexadecimal starting symbol
var letters = ['000000','FF0000','00FF00','0000FF','FFFF00','00FFFF','FF00FF','C0C0C0'];
color += letters[Math.floor(Math.random() * letters.length)];
document.getElementById('kleur').style.background = color;
});
</script>
<div class="content_block_list">
<?php if( have_rows('content_block_list') ): ?>
<ul>
<?php while( have_rows('content_block_list') ): the_row();
$content = get_sub_field('content');
$button_link = get_sub_field('button_link'); ?>
<li>
<div>
<?php if ($content == true){ ?>
<?php echo $content; ?>
<?php } ?>
<?php if ($button_link == true){ ?>
<a id="kleur" class="more" href="<?php echo $button_link; ?>">LEES MEER</a>
<?php } ?>
</div>
</li>
<?php endwhile; ?>
</ul>
<?php endif; ?>
</div>
此代码自动生成 3 个带有“阅读更多”锚点的块,这些锚点有一个 background-color,需要随机更改。我必须创建一个循环还是什么?
在这里你可以看到第一个锚点确实改变了背景颜色:
感谢您的宝贵时间!
【问题讨论】:
-
假设您正在使用
document.getElementById('kleur')我假设所有元素都具有相同的id属性。如果是这样,这是您的问题,因为id必须是唯一的。将其更改为所有元素上的公共类。您还需要遍历所有元素并单独应用一种颜色,因为此时您正在为它们提供所有相同的颜色。 -
@RoryMcCrossan php 加载了所有块,所以我只能为 3 个块提供 1 个 ID 或 1 个类。
-
没错——你可以使用我提到的通用类。我还为您添加了一个带有示例的答案。
标签: javascript jquery html css random