最近在做一个项目,因为框架原因,所有功能只能使用原生js开发(真的无语),碰到"实现table 被选中行变颜色"的需求,就在网上找了下,然后写了一个js方法,只需要changeColorWithTrs(tableid)就可以实现(ps:也是为了自己方便引用,只要把table的id写进去就可以实现功能)
代码如下:
<html><head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8">
</head>
<body>
<table id='table1' style='width:300px'>
<tr><td>1</td><td>这是第1行</td></tr>
<tr><td>2</td><td>这是第2行</td></tr>
<tr><td>3</td><td>这是第3行</td></tr>
<tr><td>4</td><td>这是第4行</td></tr>
<tr><td>5</td><td>这是第5行</td></tr>
<tr><td>6</td><td>这是第6行</td></tr>
</table>
</body>
<script>
//执行方法 传tab id
changeColorWithTrs('table1');
//点击行内,渲染整行背景色
function changeColorWithTrs(tabid){
var table1=document.getElementById(tabid);
var trs = table1.getElementsByTagName('tr');
for( var i=0; i<trs.length; i++ ){
trs[i].onmousedown = function(){
tronmousedown(this,tabid);
}
}
}
function tronmousedown(obj,tabid){
var table1=document.getElementById(tabid);
var trs = table1.getElementsByTagName('tr');
for( var o=0; o<trs.length; o++ ){
if( trs[o] == obj ){
trs[o].style.backgroundColor = '#DFEBF2'; //渲染颜色根据自己需要调整
}else{
trs[o].style.backgroundColor = '';
}
}
}
</script>
</html>