表行数不定,怎样根据表行数设置每行不同的背影色,不要有相近的颜色出现 表行数不定,怎样根据表行数设置每行不同的背影色,不要有相近的颜色出现 解决方案 » 免费领取超大流量手机卡,每月29元包185G流量+100分钟通话, 中国电信官方发货 <table id="table1" width="100" border="0" cellspacing="0" cellpadding="0"> <tr> <td> </td> <td> </td> </tr> <tr> <td> </td> <td> </td> </tr> <tr> <td> </td> <td> </td> </tr> <tr> <td> </td> <td style="background-color:"> </td> </tr></table><script>(function table(){ var table =document.getElementById("table1"); for(i=0;i<table.rows.length;i++){ table.rows[i].style.backgroundColor = (i%2==0)? "#333333":"#CCCCCC" }})();</script> 只能保证相邻行颜色不相近<style>td{height:24px;}</style><table id="table1" border="1" width="100%"><tr><td></td></tr><tr><td></td></tr><tr><td></td></tr><tr><td></td></tr><tr><td></td></tr><tr><td></td></tr><tr><td></td></tr><tr><td></td></tr><tr><td></td></tr><tr><td></td></tr><tr><td></td></tr><tr><td></td></tr></table><script>window.onload = function(){ var table1 = document.getElementById("table1"); var rgb = {"red":255, "green":255, "blue":255};// 初始颜色,无实际意义 rgb = getNewColor(rgb); for(var i = 0; i < table1.rows.length; i++){ rgb = getNewColor(rgb); var red = rgb["red"].toString(16); var green = rgb["green"].toString(16); var blue = rgb["blue"].toString(16); var newcolor = "#" + (red.length == 1 ? ("0" + red) : red) + (green.length == 1 ? ("0" + green) : green) + (blue.length == 1 ? ("0" + blue) : blue); table1.rows[i].style.backgroundColor = newcolor; }}function getNewColor(rgb){ var color = Math.round(Math.random() * 255); while(Math.abs(rgb["red"] - color) < 50){ color = Math.round(Math.random() * 255); } rgb["red"] = color; color = Math.round(Math.random() * 255); while(Math.abs(rgb["green"] - color) < 50){ color = Math.round(Math.random() * 255); } rgb["green"] = color; color = Math.round(Math.random() * 255); while(Math.abs(rgb["blue"] - color) < 50){ color = Math.round(Math.random() * 255); } rgb["blue"] = color; return rgb;}</script> 可以把需要的颜色值保存到数组中。然后让rows[i]的背景色等于 color[i]的颜色值。前提是,颜色值的数量要比rows 多,如果少的话,那肯定还是有重复的。所有要考虑下你的rows到底有多少,可以考虑做个分页。这样50行,没有重复的颜色行,应该是没有问题的仅供参考 变化rgb的数值了。太相近的话,数值差选大点即可。 请帮忙看看这段JS代码用什么加密的 jsp页面的IP参数传递给调用的ocx控件问题, 如何定时关闭提交表单后弹出的窗口? 请问高手,这个问题怎么解决。 关于HTML5的file应用,已知本地一个图片文件路径,如何把它封装成HTML5中的file对象? 框架页中左框架页事件传Session到右边的页,右边框架页刷新显示的问题 显示图片问题! (+急)关于页面预载图片 有一个难度很大的问题,请高手解决。如有一个父窗口,要控制子窗口,但我不知子窗口写有什么javascript代码,我就只想不要这个子窗口中的 我也送分玩 dwr中怎样处理数组的传递 谷歌浏览器的JavaScript使用问题
<table id="table1" width="100" border="0" cellspacing="0" cellpadding="0">
<tr>
<td> </td>
<td> </td>
</tr>
<tr>
<td> </td>
<td> </td>
</tr>
<tr>
<td> </td>
<td> </td>
</tr>
<tr>
<td> </td>
<td style="background-color:"> </td>
</tr>
</table>
<script>
(function table(){
var table =document.getElementById("table1");
for(i=0;i<table.rows.length;i++){
table.rows[i].style.backgroundColor = (i%2==0)? "#333333":"#CCCCCC"
}
})();
</script>
td{
height:24px;
}
</style>
<table id="table1" border="1" width="100%">
<tr><td></td></tr>
<tr><td></td></tr>
<tr><td></td></tr>
<tr><td></td></tr>
<tr><td></td></tr>
<tr><td></td></tr>
<tr><td></td></tr>
<tr><td></td></tr>
<tr><td></td></tr>
<tr><td></td></tr>
<tr><td></td></tr>
<tr><td></td></tr>
</table>
<script>
window.onload = function(){
var table1 = document.getElementById("table1");
var rgb = {"red":255, "green":255, "blue":255};// 初始颜色,无实际意义
rgb = getNewColor(rgb);
for(var i = 0; i < table1.rows.length; i++){
rgb = getNewColor(rgb);
var red = rgb["red"].toString(16);
var green = rgb["green"].toString(16);
var blue = rgb["blue"].toString(16);
var newcolor = "#" + (red.length == 1 ? ("0" + red) : red)
+ (green.length == 1 ? ("0" + green) : green)
+ (blue.length == 1 ? ("0" + blue) : blue);
table1.rows[i].style.backgroundColor = newcolor;
}
}function getNewColor(rgb){
var color = Math.round(Math.random() * 255);
while(Math.abs(rgb["red"] - color) < 50){
color = Math.round(Math.random() * 255);
}
rgb["red"] = color; color = Math.round(Math.random() * 255);
while(Math.abs(rgb["green"] - color) < 50){
color = Math.round(Math.random() * 255);
}
rgb["green"] = color; color = Math.round(Math.random() * 255);
while(Math.abs(rgb["blue"] - color) < 50){
color = Math.round(Math.random() * 255);
}
rgb["blue"] = color; return rgb;
}
</script>
然后让rows[i]的背景色等于 color[i]的颜色值。前提是,颜色值的数量要比rows 多,
如果少的话,那肯定还是有重复的。所有要考虑下你的rows到底有多少,可以考虑做个分页。
这样50行,没有重复的颜色行,应该是没有问题的仅供参考
太相近的话,数值差选大点即可。