首页 > js如何给a标签添加随机颜色

js如何给a标签添加随机颜色

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));
  }
})

从前端乱炖里面看到一篇文章,里面有个代码段可能能够解决问题:

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-前端乱炖


$("a").each(
    function(){
        $(this).css('color', '#' + Math.floor(16777216*Math.random()).toString(16))
    }
)

tags[i].css("background-color",rgba(r,g,b,a));这句话写法错误


function rgba(r,g,b,a) {
    return ["rgba", "(", [r,g,b,a].join(), ")"].join(""));
}
【热门文章】
【热门文章】