Dom操作高级应用
table
tBodies,tHead,tFoot,rows,cells
一个table有多个tbody
oTab.tBodies[0].rows[i].style.background = "#ccc";
示例:隔行换色
window.onload = function(){
var oTab = document.getElementById("tab1");
var oldColor; //关键点:保存行的旧样式
oTab.tBodies[0].rows[0].cells[1].innerHTML = "jack";
for(var i=0; i<oTab.tBodies[0].rows.length; i++){
if(i%2==0){
oTab.tBodies[0].rows[i].style.background = "#ccc";
}
else{
oTab.tBodies[0].rows[i].style.background = "";
}
oTab.tBodies[0].rows[i].onmouseover = function(){
oldColor = this.style.background; //保存行的旧样式
this.style.background = "green";
}
oTab.tBodies[0].rows[i].onmouseout = function(){
this.style.background = oldColor;
}
}
}
添加删除行
+++++++++++++++++++++++++++++++++++++++
window.onload = function(){
var oTab = document.getElementById("tab1");
var oName = document.getElementById("txtName");
var oAge = document.getElementById("txtAge");
var oBtn = document.getElementById("btn1");
var maxId = oTab.tBodies[0].rows.length + 1; //第一种
oBtn.onclick = function(){
var oTr = document.createElement("tr");
var oTd1 = document.createElement("td");
var oTd2 = document.createElement("td");
var oTd3 = document.createElement("td");
var oTd4 = document.createElement("td");
//var oA = document.createElement("a");
var length =oTab.tBodies[0].rows.length;
//var maxId =oTab.tBodies[0].rows[length-1].cells[0].innerHTML; //第二种
//oTd1.innerHTML = parseInt(maxId) + 1;
oTd1.innerHTML = maxId++;
oTd2.innerHTML = oName.value;
oTd3.innerHTML = oAge.value;
oTd4.innerHTML = '<a href="javascript:;">删除</a>';
/*
oA.innerHTML = "删除";
oA.setAttribute("href","javascript:;");
oTd4.appendChild(oA);
*/
oTr.appendChild(oTd1);
oTr.appendChild(oTd2);
oTr.appendChild(oTd3);
oTr.appendChild(oTd4);
////异常: 删除新添加行正常,删除旧行不正常
oTd4.getElementsByTagName("a")[0].onclick=function(){
oTab.tBodies[0].removeChild(this.parentNode.parentNode);
}
oTab.tBodies[0].appendChild(oTr);
}
// 异常:新添加的行不能删除
var aA = oTab.tBodies[0].getElementsByTagName("a");
for(var i=0; i<aA.length; i++){
aA[i].onclick = function(){
oTab.tBodies[0].removeChild(this.parentNode.parentNode);
}
}
}
表格搜索
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
window.onload = function(){
var oTxt = document.getElementById("txt1");
var oBtn = document.getElementById("btn1");
var oTab = document.getElementById("tab1");
oBtn.onclick = function(){
for(var i=0; i<oTab.tBodies[0].rows.length; i++){
var oRow = oTab.tBodies[0].rows[i];
var vTd = oRow.cells[1].innerHTML;
//if(oTxt.value == vTd){
//if(vTd.search(oTxt.value) != -1){ //模糊搜索str.search()
//if(vTd.toLowerCase().search(oTxt.value.toLowerCase()) != -1){ //模糊搜索str.search() + 忽略大小写
//关联搜索 如“张,李”
var arr = oTxt.value.split(',');
oRow.style.background = "";
for(var j=0; j<arr.length; j++){ //这里不能再定义i,否则会出问题
if(vTd.toLowerCase().search(arr[j].toLowerCase()) != -1){ //模糊搜索str.search() + 忽略大小写
oRow.style.background = "green";
}
}
}
}
}
Dom操作高级应用的更多相关文章
- Javascript高级编程学习笔记(45)——DOM 操作表格及DOM动态集合
操作DOM表格 早些时候,HTML 还是以表格布局为主, 所以DOM操作表格是比较重要的一点 但是现如今 有其它的选择,所以表格的操作也就慢慢地淡出了人们的视线 所以这里也就不过多去详细展开,这里也就 ...
- 解密jQuery内核 DOM操作的核心函数domManip
domManip是什么 dom即Dom元素,Manip是Manipulate的缩写,连在一起就是Dom操作的意思. .domManip()是jQuery DOM操作的核心函数 对封装的节点操作做了参数 ...
- 第25篇 jQuer快速学习(上)---选择器和DOM操作
这个文章经历的时间比较长,不是因为jQuery比较难,而是东西比较多,真心是个体力活.所以本来想把jQuery做成一篇去写,但由于写的时候发现jQuery发现写成一篇的话过于长,对于阅读起来也不是一个 ...
- 迷你MVVM框架 avalonjs 沉思录 第2节 DOM操作的三大问题
jQuery之所以击败Prototype.js,是因为它自一开始就了解这三大问题,并提出完善的解决方案. 第一个问题,DOM什么时候可用.JS不像C那样有一个main函数,里面的逻辑不分主次.但JS是 ...
- Python之路day13 web 前端(JavaScript,DOM操作)
参考链接:http://www.cnblogs.com/wupeiqi/articles/5433893.html day13 1. CSS示例 2. JavaScript 3. DOM操作 上节内容 ...
- DOM 操作属性
DOM操作就是针对对象的操作 先写一个按钮,<input tupe="button" value="" id="id"> 这 ...
- JS核心之DOM操作 下
目录: 1.节点类型之Document类型 2.节点类型之Element类型 3.节点类型之Text类型 4.综合小示例 -- 动态添加外部样式文件 5.查找元素的扩展方法 接上篇,我们先来看常用的三 ...
- 前端学习(二十三)DOM操作,事件(笔记)
javascript 组成部分 1.ECMAScript javascript的核心解释器 2.DOM Document Object Modle 文 ...
- DOM操作标签,事件绑定,jQuery框架
DOM操作标签 ''' 在起变量名的时候 如果该变量指向的是一个标签 那么建议使用 xxxEle eg:aEle\pEle\divEle\spanEle ''' 基本使用 动态创建一个标签 var 变 ...
随机推荐
- SuSE(SLES)安装配置syslog-ng日志server,可整合splunk
Update History 2014年04月25日 - 撰写初稿 引言 在自己主动化部署AutoYast.自己主动化监控BMC Patrol双方面形成雏形后.日志的收集.管理.分析也顺势成为我们须要 ...
- Linux 利用hosts.deny 防止暴力破解ssh(转)
一.ssh暴力破解 利用专业的破解程序,配合密码字典.登陆用户名,尝试登陆服务器,来进行破解密码,此方法,虽慢,但却很有效果. 二.暴力破解演示 2.1.基础环境:2台linux主机(centos 7 ...
- Android NDK入门实例 计算斐波那契数列一生成jni头文件
最近要用到Android NDK,调用本地代码.就学了下Android NDK,顺便与大家分享.下面以一个具体的实例计算斐波那契数列,说明如何利用Android NDK,调用本地代码.以及比较本地代码 ...
- LeetCode_Merge Two Sorted Lists
一.题目 Merge Two Sorted Lists My Submissions Merge two sorted linked lists and return it as a new list ...
- Burp Suite抓包、截包和改包
Burp Suite..呵呵.. 听说Burp Suite是能够监測.截取.改动我们訪问web应用的数据包,这么牛X? 条件:本地网络使用代理.由Burp Suite来代理.也就是说,每一个流出外网的 ...
- JavaScript发展史,与JScript差别,引入方式,数据类型,命名规范,命名推荐,解决命名冲突
文件夹: 1.JavaScript发展史 2.JavaScript与JScript差别 3.JavaScript引入方式 4.JavaScript基本数据类型及布尔值 5.JavaScript命名规范 ...
- hdu3496(二维背包)
题目链接:http://acm.hdu.edu.cn/showproblem.php?pid=3496 题意:题意是 DuoDuo 想看n部电影,但是被要求最长能看的总时间数为 L,每部电影有他的时长 ...
- Android开源项目pulltorefresh分析与简单使用
在Android开发中有时我们须要訪问网络实时刷新数据.比方QQ好友在线状态最新信息,QQ空间须要显示很多其它的好友动态信息,EOE论坛client显示很多其它的文章帖子信息等.android-pul ...
- ajax相关体会
参考原文: 例子:http://blog.csdn.net/beijiguangyong/article/details/7725596 原理讲解:http://www.cnblogs.com/min ...
- 编译安装LNMP Centos 6.5 x64 + Nginx1.6.0 + PHP5.5.13 + Mysql5.6.19
(来自:http://www.cnblogs.com/vicowong/archive/2011/12/01/2116212.html) 环境: 系统硬件:vmware vsphere (CPU:2* ...