js實(shí)現(xiàn)單擊可修改表格
純js實(shí)現(xiàn)單擊可修改表格(類似成績(jī)單),供大家參考,具體內(nèi)容如下
功能:實(shí)現(xiàn)成績(jī)單單擊表格可對(duì)數(shù)據(jù)進(jìn)行修改且對(duì)輸入的數(shù)字大小有驗(yàn)證例如不小于0不大于100,總分欄會(huì)對(duì)總分進(jìn)行求和(利用了es6的模板字符串)。
實(shí)現(xiàn)效果:

代碼:
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<meta http-equiv="X-UA-Compatible" content="IE=edge">
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<title>Document</title>
<style>
table{
margin: 0 auto;
z-index:999999;
border-collapse: collapse;
}
th {
background-color: #4CAF50;
/* background-image: linear-gradient(to right, #eea2a2 0%, #bbc1bf 19%, #57c6e1 42%, #b49fda 79%, #7ac5d8 100%); */
color: white;
}
table th,tr,td{
width:100px;
text-align: center;
}
table input{
border:none;
outline: none;
width: 100%;
}
.inputClass{
width:80px;
height:100%
}
</style>
</head>
<body>
<div style="position: relative;margin-top: 200px;text-align:center">
<h2 style="margin-bottom: 50px;">成績(jī)登記表</h2>
<div >
<table border="1">
<thead>
<th>學(xué)號(hào)</th>
<th>姓名</th>
<th>語文</th>
<th>數(shù)學(xué)</th>
<th>英語</th>
<th>總分</th>
</thead>
<tbody>
</tbody>
</table>
</div>
</div>
</body>
<script>
// 數(shù)組
let data = [
{
id:1101,
name:'小王',
Chinese:100,
Math:80,
English:91,
total:271
},
{
id:1102,
name:'小曾',
Chinese:88,
Math:87,
English:92,
total:267
},
{
id:1103,
name:'小趙',
Chinese:75,
Math:20,
English:86,
total:181
},
{
id:1104,
name:'小周',
Chinese:65,
Math:81,
English:83,
total:229
}
]
window.onload = function(){
initdata()
}
//初始化數(shù)據(jù)
// 模板填入數(shù)據(jù)
function initdata(){
let tbodyinner = document.getElementsByTagName("tbody")[0]
let html = ''
for(let i=0;i<data.length;i++){
html+=`
<tr>
<td>${data[i].id}</td>
<td>${data[i].name}</td>
<td name="grade" class="chinese">${data[i].Chinese}</td>
<td name="grade" class="math">${data[i].Math}</td>
<td name="grade" class="english">${data[i].English}</td>
<td class="allscore">${parseInt(data[i].Chinese)+parseInt(data[i].Math)+parseInt(data[i].English)}</td>
</tr>
`
}
// tbody.innerHTML="..."往tbody中添加內(nèi)容
tbodyinner.innerHTML = html
getNode()
}
// 監(jiān)聽click事件
function getNode(){
let subject = document.getElementsByName("grade")
for(let i=0;i<subject.length;i++){
subject[i].addEventListener('click',function(){
edit(this)
})
}
}
//鼠標(biāo) 移入點(diǎn)
function edit(i){
let inputlen = document.getElementsByTagName('input').length
let oldvalue = i.innerHTML
if(inputlen==0){
// 設(shè)置該標(biāo)簽為空
i.innerHTML = ''
// 添加input對(duì)象
let inp = document.createElement("input")
inp.value = oldvalue
inp.classList.add("inputClass")
// 添加子節(jié)點(diǎn)
i.appendChild(inp)
// 獲取文本中的內(nèi)容
inp.select()
// 失去焦點(diǎn)事件
inp.onblur = function(){
if(inp.value<=100&&inp.value>=0){
i.innerHTML = inp.value
let val1 = i.parentNode.childNodes[5].innerHTML
let val2 = i.parentNode.childNodes[7].innerHTML
let val3 = i.parentNode.childNodes[9].innerHTML
i.parentNode.childNodes[11].innerHTML = parseInt(val1)+parseInt(val2)+parseInt(val3)
}else{
return alert("數(shù)據(jù)值不對(duì),請(qǐng)重新輸入!");
}
}
}
}
</script>
</html>
以上就是本文的全部?jī)?nèi)容,希望對(duì)大家的學(xué)習(xí)有所幫助,也希望大家多多支持腳本之家。
- angularjs實(shí)現(xiàn)table表格td單元格單擊變輸入框/可編輯狀態(tài)示例
- js生成動(dòng)態(tài)表格并為每個(gè)單元格添加單擊事件的方法
- vuejs element table 表格添加行,修改,單獨(dú)刪除行,批量刪除行操作
- angularJs 表格添加刪除修改查詢方法
- JS實(shí)現(xiàn)動(dòng)態(tài)表格的添加,修改,刪除功能(推薦)
- JS動(dòng)態(tài)修改表格cellPadding和cellSpacing的方法
- js動(dòng)態(tài)修改表格行colspan列跨度的方法
- javascript修改表格背景色實(shí)例代碼分享
- 查詢綁定數(shù)據(jù)島的表格中的文本并修改顯示方式的js代碼
相關(guān)文章
js中如何復(fù)制一個(gè)對(duì)象并獲取其所有屬性和屬性對(duì)應(yīng)的值
如果知道這個(gè)對(duì)象的所有屬性自然就可以重新new一個(gè),然后對(duì)每個(gè)屬性賦值,就可以做到,但如果不知道呢?如何創(chuàng)建一個(gè)內(nèi)容相同 的對(duì)象呢?下面有個(gè)不錯(cuò)的示例,大家可以看看2013-10-10
遍歷json 對(duì)象的屬性并且動(dòng)態(tài)添加屬性的實(shí)現(xiàn)
下面小編就為大家?guī)硪黄闅vjson 對(duì)象的屬性并且動(dòng)態(tài)添加屬性的實(shí)現(xiàn)。小編覺的挺不錯(cuò)的,現(xiàn)在就分享給大家,也給大家做個(gè)參考。一起跟隨小編過來看看吧2016-12-12
一個(gè)特殊的排序需求的javascript實(shí)現(xiàn)代碼
看了之后1是手癢癢,2是覺得樓主的實(shí)現(xiàn)有問題,就動(dòng)手寫了一下,用js,大概用了30-40分鐘。2009-09-09
JS中數(shù)據(jù)類型的正確判斷方法實(shí)例
怎么去判斷一個(gè)數(shù)據(jù)屬于哪個(gè)數(shù)據(jù)類型,這個(gè)是很常見的操作,我們一般都會(huì)想到typeof和instanceof這兩個(gè)常見的方法,但有時(shí)候這兩種方法并不能滿足我們的需求,下面這篇文章主要給大家介紹了關(guān)于JS中數(shù)據(jù)類型的正確判斷方法,需要的朋友可以參考下2021-08-08
Javascript模仿淘寶信用評(píng)價(jià)實(shí)例(附源碼)
這篇文章主要介紹了Javascript模仿淘寶信用評(píng)價(jià)功能實(shí)現(xiàn)方法,以完整實(shí)例形式分析了JavaScript響應(yīng)鼠標(biāo)事件動(dòng)態(tài)改變頁面元素的相關(guān)技巧,并附帶了完整的實(shí)例代碼供讀者下載參考,需要的朋友可以參考下2015-11-11

