search

Home  >  Q&A  >  body text

javascript - 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));
  }
})
怪我咯怪我咯2818 days ago437

reply all(4)I'll reply

  • PHP中文网

    PHP中文网2017-04-10 14:58:24

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

    reply
    0
  • 巴扎黑

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

    reply
    0
  • 巴扎黑

    巴扎黑2017-04-10 14:58:24

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

    reply
    0
  • 天蓬老师

    天蓬老师2017-04-10 14:58:24

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

    reply
    0
  • Cancelreply