JS實(shí)現(xiàn)表格隔行變色
本文實(shí)例為大家分享了JS實(shí)現(xiàn)表格隔行變色的具體代碼,供大家參考,具體內(nèi)容如下
用到的鼠標(biāo)事件:(1)鼠標(biāo)經(jīng)過(guò) onmouseover;(2)鼠標(biāo)離開(kāi) onmouseout
核心思路:鼠標(biāo)經(jīng)過(guò) tr 行的時(shí)候,當(dāng)前行會(huì)改變背景顏色,鼠標(biāo)離開(kāi)的時(shí)候去掉背景顏色。
注意:第一行(thead 里面的行)不需要變換顏色,改變的是 tbody 里面的行。
1、獲取元素,獲取的是 tbody里面的行。
2、循環(huán)注冊(cè)綁定事件,將 tbody 里面全部的行都得到,然后全部都注冊(cè)鼠標(biāo)經(jīng)過(guò)和離開(kāi)事件。
3、所有行綁定鼠標(biāo)經(jīng)過(guò)事件,鼠標(biāo)經(jīng)過(guò)當(dāng)前元素(this)改變顏色;
4、所有行綁定鼠標(biāo)離開(kāi)事件,鼠標(biāo)離開(kāi)當(dāng)前元素(this)沒(méi)有顏色;
代碼如下:
<!DOCTYPE html>
<html lang="en">
<head>
? ? <meta charset="UTF-8">
? ? <title>表格隔行變色</title>
? <style type="text/css">
? ? ? *{
? ? ? ? ? margin:0;padding: 0;
? ? ? }
? ? ? table{
? ? ? ? ? width:500px;
? ? ? ? ? position:relative;
? ? ? ? ? margin:100px auto;
? ? ? ? ? border-collapse:collapse;
? ? ? ? ? /*合并表格單一邊框*/
? ? ? ? ? border:1px solid #d7d7d7;
? ? ? }
? ? ? thead tr{
? ? ? ? ? background-color:#ccc;
? ? ? ? ? height:30px;
? ? ? }
? ? ? table tr{
? ? ? ? ? text-align: center;
? ? ? ? ? height:30px;
? ? ? }
? ? ? .bg{
? ? ? ? ? background: #eee;
? ? ? }
</style>
</head>
<body>
<table ?border=1>
? ? <thead>
? ? ? ? <tr>
? ? ? ? ? ? <td width="40">序號(hào)</td>
? ? ? ? ? ? <td width="100">前端單詞</td>
? ? ? ? ? ? <td width="80">基本釋義</td>
? ? ? ? ? ? <td width="50">長(zhǎng)度</td>
? ? ? ? ? ? <td width="">補(bǔ)充</td>
? ? ? ? </tr>
? ? </thead>
? ? <tbody>
? ? ? ? <tr>
? ? ? ? ? ? ? ? ? ?<td>1</td>
? ? ? ? ? ? ? ? ? ?<td>select</td>
? ? ? ? ? ? ? ? ? ?<td>選擇</td>
? ? ? ? ? ? ? ? ? ?<td>6</td>
? ? ? ? ? ? ? ? ? ?<td>-</td>
? ? ? ? ? ? ?</tr>
? ? ? ? ? ? ?<tr>
? ? ? ? ? ? ? ? ? ?<td>2</td>
? ? ? ? ? ? ? ? ? ?<td>target</td>
? ? ? ? ? ? ? ? ? ?<td>目標(biāo)</td>
? ? ? ? ? ? ? ? ? ?<td>6</td>
? ? ? ? ? ? ? ? ? ?<td>-</td>
? ? ? ? ? ? ?</tr>
? ? ? ? ? ? ?<tr>
? ? ? ? ? ? ? ? ? ?<td>3</td>
? ? ? ? ? ? ? ? ? ?<td>input </td>
? ? ? ? ? ? ? ? ? ?<td>輸出</td>
? ? ? ? ? ? ? ? ? ?<td>5</td>
? ? ? ? ? ? ? ? ? ?<td>-</td>
? ? ? ? ? ? ?</tr>
? ? ? ? ? ? ?<tr>
? ? ? ? ? ? ? ? ? ?<td>4</td>
? ? ? ? ? ? ? ? ? ?<td>button</td>
? ? ? ? ? ? ? ? ? ?<td>按鈕</td>
? ? ? ? ? ? ? ? ? ?<td>8</td>
? ? ? ? ? ? ? ? ? ?<td>-</td>
? ? ? ? ? ? ?</tr>
? ? ? ? ? ? ?<tr>
? ? ? ? ? ? ? ? ? ?<td>5</td>
? ? ? ? ? ? ? ? ? ?<td>checkbox</td>
? ? ? ? ? ? ? ? ? ?<td>復(fù)選框</td>
? ? ? ? ? ? ? ? ? ?<td>8</td>
? ? ? ? ? ? ? ? ? ?<td>-</td>
? ? ? ? ? ? ?</tr>
? ? </tbody>
</table>
<script>
? ? //1、獲取tbody里面的所有的行
? ? var trs = document.querySelector('tbody').querySelectorAll('tr');
? ? //2、利用循環(huán)注冊(cè)事件
? ? for(var i = 0;i<trs.length;i++){
? ? ? ? var bgc = function(e){this.className = 'bg';}
? ? ? ? trs[i].addEventListener('mouseover',bgc)
? ? ? ? trs[i].onmouseout = function(){
? ? ? ? ? ? this.className = '';
? ? ? ? }
? ? }
</script>
</body>
</html>顯示效果:
當(dāng)鼠標(biāo)滑過(guò)時(shí):

當(dāng)鼠標(biāo)離開(kāi)時(shí):

當(dāng)然這個(gè)效果使用 CSS的 :hover 可以非常簡(jiǎn)單的實(shí)現(xiàn)(tbody tr:hover{background: #eee;}),但是在這個(gè)例子中主要想體現(xiàn)的是使用JS事件和排他思想實(shí)現(xiàn)的效果。
以上就是本文的全部?jī)?nèi)容,希望對(duì)大家的學(xué)習(xí)有所幫助,也希望大家多多支持腳本之家。
- JS控制表格隔行變色
- javascript實(shí)現(xiàn)table表格隔行變色的方法
- js實(shí)現(xiàn)鼠標(biāo)經(jīng)過(guò)表格行變色的方法
- 原生JS操作網(wǎng)頁(yè)給p元素添加onclick事件及表格隔行變色
- 一個(gè)簡(jiǎn)單但常用的javascript表格樣式_鼠標(biāo)劃過(guò)行變色 簡(jiǎn)潔實(shí)現(xiàn)
- javascript基于jQuery的表格懸停變色/恢復(fù),表格點(diǎn)擊變色/恢復(fù),點(diǎn)擊行選Checkbox
- 高效的表格行背景隔行變色及選定高亮的JS代碼
- 用JS控制表格的逐行變色的表單
- javascript表格隔行變色加鼠標(biāo)移入移出及點(diǎn)擊效果的方法
- js兼容標(biāo)準(zhǔn)的表格變色效果
相關(guān)文章
淺析Virtual DOM的概念與其在現(xiàn)代前端框架中的實(shí)踐
這篇文章將深入探討Virtual DOM(虛擬DOM)的概念,分析其對(duì)前端開(kāi)發(fā)的革新影響,并以此展示前端技術(shù)的深度和魅力,感興趣的小伙伴可以跟隨小編一起學(xué)習(xí)一下2023-12-12
js實(shí)現(xiàn)簡(jiǎn)單的可切換選項(xiàng)卡效果
這篇文章主要介紹了js實(shí)現(xiàn)簡(jiǎn)單的可切換選項(xiàng)卡效果的方法,涉及javascript操作css樣式實(shí)現(xiàn)切換選項(xiàng)卡的技巧,非常具有實(shí)用價(jià)值,需要的朋友可以參考下2015-04-04
windows系統(tǒng)下簡(jiǎn)單nodejs安裝及環(huán)境配置
相信對(duì)于很多關(guān)注javascript發(fā)展的同學(xué)來(lái)說(shuō),nodejs已經(jīng)不是一個(gè)陌生的詞眼,這里不想談太多的nodejs的相關(guān)信息。只說(shuō)一下,windows系統(tǒng)下簡(jiǎn)單nodejs環(huán)境配置2013-01-01

