js table滑鼠懸浮當前行高亮和切換資料效果
本章節分享一段程式碼例項,它實現了滑鼠懸浮當前行高亮效果。
並且具有隔行變色功能,同時點選按鈕能夠切換表格資料。
程式碼例項如下:
[HTML] 純文字檢視 複製程式碼<!DOCTYPE html> <html> <head> <meta charset="utf-8"> <meta name="author" content="http://www.softwhy.com/" /> <title>螞蟻部落</title> <script type="text/javascript"> var one = { "前端專區": "div css教程", "後臺專區": "asp.net教程", "資源專區": "特效下載", "正規表示式教程": "表示式例項程式碼", "網站優化專區": "SEO教程" }; var two = { "螞蟻部落": "http://www.softwhy.com", "特效部落": "http://www.51texiao.cn", "CSDN程式設計師開發網站": "http://www.csdn.net", "百度": "http://www.baidu.com", "網易": "http://www.163.com" }; function ToggleData() { var btn = document.getElementById("btnToggle"); if (btn.value == "資料一") { loadData(one, "資料二"); } else { loadData(two, "資料一"); } } function loadData(Datas,btnValue) { var tblMain = document.getElementById("tblMain"); //清空table資料 var trs = tblMain.getElementsByTagName("tr"); var trsLen = trs.length; //必須先把trs的長度存放到一個變數中 for (var index = 0; index < trsLen; index++) { tblMain.deleteRow(0); } var nIndex = 0; for (var key in Datas) { var tr = tblMain.insertRow(-1); tr.onmouseover = trMouseOver; tr.onmouseout = trMouseOut; var td1 = tr.insertCell(-1); td1.innerHTML = key; var td2 = tr.insertCell(-1); td2.innerHTML = Datas[key]; if (nIndex % 2 == 0) { //設定間隔色 tr.style.background = "yellow"; } else { tr.style.background = "white"; } nIndex++; } var btn = document.getElementById("btnToggle"); btn.value = btnValue; } function trMouseOver() { var tblMain = document.getElementById("tblMain"); //清空資料 var trs = tblMain.getElementsByTagName("tr"); for (var index = 0; index < trs.length; index++) { if (this == trs[index]) { trs[index].style.background = "green"; } } } function trMouseOut() { var tblMain = document.getElementById("tblMain"); var trs = tblMain.getElementsByTagName("tr"); for (var index = 0; index < trs.length; index++) { if (index % 2 ==0) { trs[index].style.background = "yellow"; } else { trs[index].style.background = "white"; } } } function iniEvent() { loadData(one, "資料二"); } window.onload=function(){ iniEvent(); var obt=document.getElementById("btnToggle"); obt.onclick=function(){ToggleData()} } </script> </head> <body> <table id="tblMain"> <tbody></tbody> </table> <input type ="button" id="btnToggle" value="資料2"/> </body> </html>
上面你的程式碼實現實現了我們的要求,下面介紹一下它的實現過程。
一.程式碼註釋:
(1).var one = { "前端專區": "div css教程",
"後臺專區": "asp.net教程",
"資源專區": "特效下載",
"正規表示式教程": "表示式例項程式碼",
"網站優化專區": "SEO教程"
};
var two = {
"螞蟻部落": "http://www.softwhy.com",
"特效部落": "http://www.51texiao.cn",
"CSDN程式設計師開發網站": "http://www.csdn.net",
"百度": "http://www.baidu.com",
"網易": "http://www.163.com"
},這是兩個json結構資料,用來作為table表格的資料。
(2).function ToggleData() {},此函式實現了table表格資料的切換。
(3).var btn = document.getElementById("btnToggle"),獲取按鈕元素物件。
(4).if (btn.value == "資料一") {
loadData(one, "資料二");
},如果按鈕顯示"資料一",那麼點選按鈕就會切換到資料一。
(5).function loadData(Datas,btnValue) {},現了表格資料載入效果,第一個引數是json格式物件,第二個引數是按鈕value值。
(6).var tblMain = document.getElementById("tblMain"),獲取表格物件。
(7).var trs = tblMain.getElementsByTagName("tr"),獲取tr元素集合。
(8).var trsLen = trs.length,獲取行的個數。
(9).for (var index = 0; index < trsLen; index++) {
tblMain.deleteRow(0);
},刪除表格中的所有行。
(10).var nIndex = 0,宣告一個變數並賦初值為0,後面會有使用。
(11).for (var key in Datas) {},使用for in語句遍歷json格式資料(物件直接量)。
(12).var tr = tblMain.insertRow(-1),在表格中插入一行。
(13).tr.onmouseover = trMouseOver,為行註冊onmouseover事件處理函式。
(14).tr.onmouseout = trMouseOut,為行註冊onmouseout 事件處理函式。
(15).var td1 = tr.insertCell(-1),為當前行插入一個單元格。
(16).td1.innerHTML = key,設定當前單元格的內容為物件直接量屬性。
(17).var td2 = tr.insertCell(-1),為tr再新增一個td單元格。
(18).td2.innerHTML = Datas[key],設定當前td單元格的內容為物件直接兩屬性值。
(19).if (nIndex % 2 == 0) { //設定間隔色
tr.style.background = "yellow";
}
else {
tr.style.background = "white";
},實現tr行隔行變色效果。
(20).nIndex++,加1。
(21).var btn = document.getElementById("btnToggle"),獲取按鈕元素。
(22).btn.value = btnValue,設定按鈕的value屬性值。
(23).function trMouseOver() {
var tblMain = document.getElementById("tblMain");
//清空資料
var trs = tblMain.getElementsByTagName("tr");
for (var index = 0; index < trs.length; index++) {
if (this == trs[index]) {
trs[index].style.background = "green";
}
}
},onmouseover事件處理函式。
為當前滑鼠懸浮的tr行設定背景色為綠色。
二.相關閱讀:
(1).getElementsByTagName()可以參閱document.getElementsByTagName()一章節。
(2).deleteRow()可以參閱js deleteRow()一章節。
(3).for in 語句可以參閱javascript for in一章節。
相關文章
- CSS滑鼠懸浮圖片模糊切換效果CSS
- 滑鼠懸浮實現當前圖片高亮效果詳解
- jQuery滑鼠懸浮當前圖片高亮其他圖片灰暗效果jQuery
- 滑鼠懸浮遮罩層動畫方式滑動切換效果遮罩動畫
- 滑鼠懸浮實現圖片動畫上下切換效果動畫
- 實現滑鼠懸浮table表格行背景變色效果
- CSS3實現的滑鼠懸浮廣告牌翻轉切換效果CSSS3
- js滑鼠懸浮字串實現字串跳動效果JS字串
- CSS 滑鼠懸浮動畫暫停效果CSS動畫
- css滑鼠懸浮下拉選單效果CSS
- jQuery滑鼠懸浮翻牌效果詳解jQuery
- jQuery滑鼠懸浮聚焦效果詳解jQuery
- js滑鼠懸浮連結背景動畫方式漸變效果JS動畫
- css滑鼠懸浮切換圖片滑鼠離開又恢復預設CSS
- 滑鼠懸浮中英文切換橫向導航選單
- CSS滑鼠懸浮行背景變色效果CSS
- css滑鼠懸浮div背景變色效果CSS
- 滑鼠懸浮div實現旋轉效果
- CSS3滑鼠懸浮元素放大效果CSSS3
- CSS滑鼠懸浮圖片動畫放大效果CSS動畫
- css3實現滑鼠懸浮圖示旋轉高亮效果程式碼例項CSSS3
- 滑鼠懸浮或者選中實現當前元素凹凸視覺效果視覺
- 簡單介紹Vue實現滑鼠懸浮切換圖片srcVue
- js文字內容感應滑鼠懸浮效果程式碼例項JS
- CSS3滑鼠懸浮環裝遮罩效果CSSS3遮罩
- CSS3滑鼠懸浮div旋轉效果CSSS3
- 滑鼠懸浮實現環形旋轉效果
- CSS3滑鼠懸浮動畫按鈕效果CSSS3動畫
- CSS3連結<a>滑鼠懸浮動畫效果CSSS3動畫
- css3滑鼠懸浮小球彈性效果CSSS3
- 滑鼠懸浮評分效果程式碼例項
- css滑鼠懸浮彈出說明層效果CSS
- 滑鼠懸浮圖片實現翻轉效果
- 滑鼠懸浮圖片實現縮放效果
- javascript實現的滑鼠懸浮當前td單元格變色效果JavaScript
- js實現滑鼠懸浮將當前內容寫入其他元素JS
- CSS3滑鼠懸浮和移開div淡入淡出效果CSSS3
- 滑鼠懸浮實現連結背景變色效果