本文实例讲述了javascript实现可全选、反选及删除表格的方法。分享给大家供大家参考。具体实现方法如下:
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN"
"http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
<title>可以全选反选删除的表格</title>
<style type="text/css">
body,table
{
margin:0;
padding:0;
font-size:14px;
}
table,tr,th,td
{
border:1px solid #cdc;
}
th
{
background-color:green;
width:100px;
}
.oddColor
{
background-color:#ccc;
}
.evenColor
{
background-color:#fcf;
}
.overColor
{
background-color:#dff;
}
</style>
<script type="text/javascript">
//定义嵌套数组
var datas = [["张三", 30, "南昌"], ["李四", 25, "北京"], ["王五", 20, "郑州"],
["赵六", 19, "武汉"], ["李莫", 18, "深圳"], ["罗成", 33, "重庆"],
["王平", 31, "天津"], ["刘萍", 22, "上海"], ["杨丽", 17, "石家庄"],
["郭丽", 30, "广州"]];
//动态创建表格
function CreateMyTable() {
var tblMain = document.getElementById("tblMain");
var rowsCount = tblMain.rows.length;
var addRow;
var addCol;
var detailInfos;
for (var i = 0; i < datas.length; i++) {
addRow = tblMain.insertRow(rowsCount - 1);//控制数据行添加到倒数第二列
addCol = addRow.insertCell(-1);
addCol.innerHTML = "<input type='checkbox' name='item' />";
addCol.align = "center"; //控制列居中
detailInfos = datas[i];
for (var j = 0; j < detailInfos.length; j++) {
addCol = addRow.insertCell(-1);
addCol.innerHTML = detailInfos[j];
}
addCol = addRow.insertCell(-1);
addCol.innerHTML = "<input type='button' id='btnDel" + i + "' value='删除' onclick='btnDel(this)' />";
addCol.align = "center"; //控制列居中
rowsCount++;
}
TableColor();
}
//设置网格间隔色和高亮显示
var oldClassName; //记住行的背景色
function TableColor() {
var tblMain = document.getElementById("tblMain");
var rowNodes = tblMain.rows;
for (var i = 1; i < rowNodes.length-1; i++) { //除去首行和末行
if (i % 2 == 0) {
rowNodes[i].className = "evenColor";
}
else {
rowNodes[i].className = "oddColor";
}
rowNodes[i].onmouseover = function () {
oldClassName = this.className;
this.className = "overColor";
}
rowNodes[i].onmouseout = function () {
this.className = oldClassName;
}
}
}
//复选框全选函数
function checkAll() {
var currentCheckNode = event.srcElement;
var checkAllNodes = document.getElementsByName("all");
//把没有点击的全选复选框去除复选
for (var i = 0; i < checkAllNodes.length; i++) {
if (currentCheckNode != checkAllNodes[i]) {
checkAllNodes[i].checked = false;
}
}
var checkItemNodes = document.getElementsByName("item");
for (var i = 0; i < checkItemNodes.length; i++) {
checkItemNodes[i].checked = currentCheckNode.checked;
}
}
//按钮选择函数
function btnCheckboxSel(index) {
var checkItemNodes = document.getElementsByName("item");
for (var i = 0; i < checkItemNodes.length; i++) {
if (index == 2) {
checkItemNodes[i].checked = !checkItemNodes[i].checked;
}
else {
checkItemNodes[i].checked = index;
}
}
}
//每行的删除按钮函数
function btnDel(btn) {
var tblMain = document.getElementById("tblMain");
var delRowNode = btn.parentNode.parentNode;
var sMsg = "您是否要删除 姓名为:【" + delRowNode.cells[1].innerText + "】,年龄为:【" +
delRowNode.cells[2].innerText + "】,城市为:【" +
delRowNode.cells[3].innerText + "】 的数据";
if (window.confirm(sMsg)) {
tblMain.tBodies[0].removeChild(delRowNode);
TableColor();
}
}
//删除所选项按钮函数
function btnDelSelectRow() {
var arrDel = new Array();
var pos = 0;
var itemNodes = document.getElementsByName("item");
for (var i = 0; i < itemNodes.length; i++) {
if (itemNodes[i].checked) {
arrDel[pos] = itemNodes[i].parentNode.parentNode;
pos++;
}
}
if (pos <= 0) {
return;
}
if (!window.confirm("是否要删除选择的数据"))
return;
var tblMain = document.getElementById("tblMain");
for (var i = 0; i < arrDel.length; i++) {
tblMain.tBodies[0].removeChild(arrDel[i]);
}
}
window.onload = CreateMyTable;
</script>
</head>
<body>
<table id="tblMain" cellspacing="0" cellpadding="10px" align="center">
<tbody>
<tr>
<th><input type="checkbox" name="all" onclick="checkAll()" />全选</th>
<th>姓名</th>
<th>年龄</th>
<th>城市</th>
<th>操作</th>
</tr>
<tr>
<th><input type="checkbox" name="all" onclick="checkAll()" />全选</th>
<th colspan="4">
<input type="button" value="全选" onclick="btnCheckboxSel(1)" />
<input type="button" value="全清" onclick="btnCheckboxSel(0)" />
<input type="button" value="反选" onclick="btnCheckboxSel(2)" />
<input type="button" value="删除所选项" onclick="btnDelSelectRow()" />
</th>
</tr>
</tbody>
</table>
</body>
</html>
希望本文所述对大家的javascript程序设计有所帮助。
免责声明:本站文章均来自网站采集或用户投稿,网站不提供任何软件下载或自行开发的软件!
如有用户或公司发现本站内容信息存在侵权行为,请邮件告知! 858582#qq.com
白云城资源网 Copyright www.dyhadc.com
暂无“javascript实现可全选、反选及删除表格的方法”评论...
《魔兽世界》大逃杀!60人新游玩模式《强袭风暴》3月21日上线
暴雪近日发布了《魔兽世界》10.2.6 更新内容,新游玩模式《强袭风暴》即将于3月21 日在亚服上线,届时玩家将前往阿拉希高地展开一场 60 人大逃杀对战。
艾泽拉斯的冒险者已经征服了艾泽拉斯的大地及遥远的彼岸。他们在对抗世界上最致命的敌人时展现出过人的手腕,并且成功阻止终结宇宙等级的威胁。当他们在为即将于《魔兽世界》资料片《地心之战》中来袭的萨拉塔斯势力做战斗准备时,他们还需要在熟悉的阿拉希高地面对一个全新的敌人──那就是彼此。在《巨龙崛起》10.2.6 更新的《强袭风暴》中,玩家将会进入一个全新的海盗主题大逃杀式限时活动,其中包含极高的风险和史诗级的奖励。
《强袭风暴》不是普通的战场,作为一个独立于主游戏之外的活动,玩家可以用大逃杀的风格来体验《魔兽世界》,不分职业、不分装备(除了你在赛局中捡到的),光是技巧和战略的强弱之分就能决定出谁才是能坚持到最后的赢家。本次活动将会开放单人和双人模式,玩家在加入海盗主题的预赛大厅区域前,可以从强袭风暴角色画面新增好友。游玩游戏将可以累计名望轨迹,《巨龙崛起》和《魔兽世界:巫妖王之怒 经典版》的玩家都可以获得奖励。
更新日志
2025年11月02日
2025年11月02日
- 小骆驼-《草原狼2(蓝光CD)》[原抓WAV+CUE]
- 群星《欢迎来到我身边 电影原声专辑》[320K/MP3][105.02MB]
- 群星《欢迎来到我身边 电影原声专辑》[FLAC/分轨][480.9MB]
- 雷婷《梦里蓝天HQⅡ》 2023头版限量编号低速原抓[WAV+CUE][463M]
- 群星《2024好听新歌42》AI调整音效【WAV分轨】
- 王思雨-《思念陪着鸿雁飞》WAV
- 王思雨《喜马拉雅HQ》头版限量编号[WAV+CUE]
- 李健《无时无刻》[WAV+CUE][590M]
- 陈奕迅《酝酿》[WAV分轨][502M]
- 卓依婷《化蝶》2CD[WAV+CUE][1.1G]
- 群星《吉他王(黑胶CD)》[WAV+CUE]
- 齐秦《穿乐(穿越)》[WAV+CUE]
- 发烧珍品《数位CD音响测试-动向效果(九)》【WAV+CUE】
- 邝美云《邝美云精装歌集》[DSF][1.6G]
- 吕方《爱一回伤一回》[WAV+CUE][454M]