javascript - js如何给a标签添加随机颜色
怪我咯
怪我咯 2017-04-10 14:56:24
0
4
441

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));
  }
})
怪我咯
怪我咯

走同样的路,发现不同的人生

reply all(4)
Ty80
$("a").each(
    function(){
        $(this).css('color', '#' + Math.floor(16777216*Math.random()).toString(16))
    }
)
巴扎黑

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

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

巴扎黑
function rgba(r,g,b,a) {
    return ["rgba", "(", [r,g,b,a].join(), ")"].join(""));
}
Peter_Zhu

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

Latest Downloads
More>
Web Effects
Website Source Code
Website Materials
Front End Template