表格的一些原生js操作(隔行变色,高亮显示,添加删除,搜索)
看着网上的视频教程,虽说还是有点简单,但还是不免想记录下。这些操作包括(隔行变色,高亮显示,添加删除,搜索功能),而这儿就是涉及table的原有属性“tBodies” “rows” “cells”等几个方法,search方法,
split方法等等
效果体验:http://runjs.cn/detail/vm8bz8dl
<!doctype html>
<html>
<head>
<meta charset="utf-8">
<title>无标题文档</title>
<script>
window.onload = function(){
var tb = document.getElementById('tb');
//alert(tb.getElementsByTagName('tbody')[0].getElementsByTagName('tr')[1].getElementsByTagName('td')[1].innerHTML);
//alert(tb.tBodies[0].rows[1].cells[1].innerHTML); //表格隔行变色和鼠标滑过高亮
var oldColor = ''; //保存原有的背景色
for (var i=;i<tb.tBodies[].rows.length;i++) {
tb.tBodies[].rows[i].style.background = i% ? '#CCC': ''; tb.tBodies[].rows[i].onmouseover = function(){
oldColor = this.style.background;
this.style.background = 'yellow';
} tb.tBodies[].rows[i].onmouseout = function(){
this.style.background = oldColor;
}
}; //添加和删除
var oBtn = document.getElementById('btn1');
var oTxt = document.getElementById('txt1');
var iNowId = tb.tBodies[].rows.length+;
oBtn.onclick = function(){
var oTr = document.createElement('tr');
var oTd = null; oTd = document.createElement('td');
oTd.innerHTML = iNowId++;
oTr.appendChild(oTd); oTd = document.createElement('td');
oTd.innerHTML = oTxt.value;
oTr.appendChild(oTd); oTd = document.createElement('td');
oTd.innerHTML ='<a href="javascript:void(0);">删除</a>';
oTr.appendChild(oTd); oTd.getElementsByTagName('a')[].onclick = function(){
tb.tBodies[].removeChild(this.parentNode.parentNode);
} tb.tBodies[].appendChild(oTr);
} //搜索功能(应该算是精确搜索)
var oBtn2 = document.getElementById('btn2');
var oTxt2 = document.getElementById('txt2');
oBtn2.onclick=function(){
for(var i=;i<tb.tBodies[].rows.length;i++){
var sValueInTb = tb.tBodies[].rows[i].cells[].innerHTML.toLowerCase();
var sValueInTxt = oTxt2.value.toLowerCase().split(' ');
if(sValueInTb==sValueInTxt){
tb.tBodies[].rows[i].style.background = 'red';
}
else{
tb.tBodies[].rows[i].style.background = '';
}
}
} //试试
var str = 'aaa blue';
var arr = str.split(' '); var str2 = 'aaa is a person';
var sFound = false;
for(var i=;i<arr.length;i++){
if(str2.search(arr[i])!=-){
sFound = true;
}
}
alert(sFound); //搜索功能(模糊查询)
var oBtn3 = document.getElementById('btn3');
var oTxt2 = document.getElementById('txt2');
oBtn3.onclick=function(){
for(var i=;i<tb.tBodies[].rows.length;i++){
var sValueInTb = tb.tBodies[].rows[i].cells[].innerHTML.toLowerCase();
var sValueInTxt = oTxt2.value.toLowerCase().split(' ');
var sFound = false;
for(var j=;j<sValueInTxt.length;j++){
if(sValueInTb.search(sValueInTxt[j])!=-){
sFound = true;
break;
}
}
if(sFound){
tb.tBodies[].rows[i].style.background = 'red';
}
else{
tb.tBodies[].rows[i].style.background = '';
} }
} }
</script>
</head> <body>
<input type="text" id="txt1">
<input type="button" id="btn1" value="添加">
<input type="text" id="txt2">
<input type="button" id="btn2" value="精确搜索"><input type="button" id="btn3" value="模糊搜索">
<table border="" width="" id="tb">
<thead>
<Tr>
<Td>ID</Td>
<Td>姓名</Td>
<Td>操作</Td>
</Tr>
</thead>
<tbody>
<tr>
<Td></Td>
<Td>abe</Td>
<Td></Td>
</tr>
<tr>
<Td></Td>
<Td>a春春</Td>
<Td></Td>
</tr>
<tr>
<Td></Td>
<Td>b一流</Td>
<Td></Td>
</tr>
<tr>
<Td></Td>
<Td>贰万</Td>
<Td></Td>
</tr>
<tr>
<Td></Td>
<Td>aaa</Td>
<Td></Td>
</tr>
<tr>
<Td></Td>
<Td>blue</Td>
<Td></Td>
</tr>
</tbody>
</table>
</body>
</html>
表格的一些原生js操作(隔行变色,高亮显示,添加删除,搜索)的更多相关文章
- 框架操作DOM和原生js操作DOM比较
问题引出 对于Angular和React操作DOM的速度,和原生js操作DOM的速度进行了一个比较: 一个同学做的demo 代码如下: <!DOCTYPE html> <html n ...
- 使用webpack打包js文件(隔行变色案例)
使用webpack打包js文件(隔行变色案例) 1.webpack安装的两种方式 运行npm i webpack -g全局安装webpack,这样就能在全局使用webpack的命令 在项目根目录中运行 ...
- 原生js操作Dom节点:CRUD
知识点,依然会遗忘.我在思考到底是什么原因.想到研究生考试准备的那段岁月,想到知识体系的建立,知识体系分为正向知识体系和逆向知识体系:正向知识体系可以理解为教科书目录,逆向知识体系可以理解考试真题. ...
- Dom4j 操作, 节点查找 添加 删除 修改 。。。xPath
转: Dom4j 操作, 节点查找 添加 删除 修改 ...xPath 2013年11月28日 10:48:59 今晚打酱油8 阅读数:8506更多 个人分类: JavaWeb 版权声明:本文为博 ...
- JS实现隔行变色,鼠标移入高亮
p.p1 { margin: 0.0px 0.0px 0.0px 0.0px; font: 31.0px Consolas; color: #2b7ec3 } p.p2 { margin: 0.0px ...
- 原生js操作DOM基础-笔记
原文参考http://mp.weixin.qq.com/s?__biz=MzU3MDA0NTMzMA==&mid=2247485490&idx=1&sn=15197b4b53e ...
- 原生js操作dom的方法
今天学习了原生js的dom节点的操作,就记录下来,仅供自己以后参考. 1)创建节点:除了可以使用createElement创建元素,也可以使用createTextNode创建文本节点. documen ...
- 【丛林】HTML Table 表格浅谈(边框、隔行变色
此例子已经包含本文大部分内容,请对照参考.查看代码 > 定义和用法 table标签定义 HTML 表格. 创建表格的四要素:table.tr.th.td <table> 整个表格以& ...
- 原生Js操作DOM
查找DOM .querySelectorAll(),它接受包含一个CSS选择器的字符串参数,返回一个表示文档中匹配选择器的所有元素的NodeList元素. .querySelector(),返回第一个 ...
随机推荐
- ARCGIS 10中添加excel点字段生产点shp文件的工具
菜单栏中——文件——添加数据——添加XY数据——选择excel。 选择x,y和投影(注意这里投影应该是原数据的本身投影,不能直接选择你要转换的投影)完成。
- (转)《深入理解java虚拟机》学习笔记3——垃圾回收算法
Java虚拟机的内存区域中,程序计数器.虚拟机栈和本地方法栈三个区域是线程私有的,随线程生而生,随线程灭而灭:栈中的栈帧随着方法的进入和退出而进行入栈和出栈操作,每个栈帧中分配多少内存基本上是在类结构 ...
- JS 实现取整
Js 常用数值函数(Math,parseInt)取整 1.丢弃小数部分,保留整数部分parseInt(5/2) 2.向上取整,有小数就整数部分加1Math.ceil(5/2) 3,四舍五入.Mat ...
- ExtJs 4.2 treePanel 点击树节点 传送参数到后台(多个参数)
//***********************************************左边树开始********************************************** ...
- Mac OS X 软件推荐
1. 前言 每个操作系统都有自己的一套软件系统,但是不同的用户却会有不同的需求,系统虽会为用户提供一些基础软件,不过为了能无碍的进入自己的学习和工作状态,总有一些软件是必须安装的,同时这些软件也可以 ...
- centos7安装chrome及加载poatman开发插件
为什么要安装chrome?因为centos7的默认浏览器firefox的实在是不习惯,上面占了太多,本来显示器就不大... 好了,首先下载chome的rpm安装包(如果需要的可以留言,我有备份) 然后 ...
- datagridview 右键选中行 并弹出菜单
private void dataGridView_OLUsers_CellMouseDown(object sender, DataGridViewCellMouseEventArgs e) { i ...
- 手工、工具分别实现cookie注入
最开始的判断access类型的网站注入点可以用“1 and 1=1”来判断. 不过现在的网站基本上被挡住了.之后呢,可以考虑cookie注入. Dim Tc_Post,Tc_Get,Tc_In,Tc_ ...
- 支付宝Unity
原地址:http://blog.csdn.net/sgnyyy/article/details/20444627 说明:支付宝Android的SDK接入只有一个接口,付费. 1. Android代码的 ...
- Firefly安装说明 与 常见问题
原地址:http://bbs.gameres.com/thread_223688.html 第三方库依赖: twisted, python-memcached ftp://ftp.tummy.c ...