RT,页面中有若干个a标签,是用ejs动态生成的,如下格式:
<a class="tag" href="/tags/<%= tag %>"><%= tag %></a>
我想做的是给每个a标签添加上不同的随机出的颜色,用var tags = $(".tag");
获取了所有的a标签,但是不能用for循环添加颜色,而且用console.log(tags[0]);
打印出来的结果一次是a标签,再刷新就是a.tag
,反复循环...为什么啊?我原本是想这么写的:
$(function(){
var tags = $(".tag");
for(var i = 0; i < tags.length ;i++){
var r = Math.floor(Math.random()*255);
var g = Math.floor(Math.random()*255);
var b = Math.floor(Math.random()*255);
var a = Math.random();
tags[i].css("background-color",rgba(r,g,b,a));
}
})
PHP中文网2017-04-10 14:58:24
$("a").each(
function(){
$(this).css('color', '#' + Math.floor(16777216*Math.random()).toString(16))
}
)
巴扎黑2017-04-10 14:58:24
从前端乱炖里面看到一篇文章,里面有个代码段可能能够解决问题:
var allA = document.getElementsByTagName('a'), i = 0, len = allA.length;
for (; i < len; i++) {
allA[i].style.backgroundColor = '#' + Math.floor(Math.random() * Math.pow(2, 24)).toString(16);
};
参考来自:
从一行代码里面学点JavaScript-前端乱炖
巴扎黑2017-04-10 14:58:24
function rgba(r,g,b,a) {
return ["rgba", "(", [r,g,b,a].join(), ")"].join(""));
}