javascript - js如何给a标签添加随机颜色
怪我咯
怪我咯 2017-04-10 14:56:24
[JavaScript讨论组]

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

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

全部回复(4)
PHP中文网
$("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(""));
}
天蓬老师

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

热门教程
更多>
最新下载
更多>
网站特效
网站源码
网站素材
前端模板
关于我们 免责申明 意见反馈 讲师合作 广告合作 最新更新
php中文网:公益在线php培训,帮助PHP学习者快速成长!
关注服务号 技术交流群
PHP中文网订阅号
每天精选资源文章推送
PHP中文网APP
随时随地碎片化学习
PHP中文网抖音号
发现有趣的

Copyright 2014-2025 https://www.php.cn/ All Rights Reserved | php.cn | 湘ICP备2023035733号