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 变 ...
随机推荐
- 使用Python在2M内存中排序一百万个32位整数
译言网 | 使用Python在2M内存中排序一百万个32位整数 使用Python在2M内存中排序一百万个32位整数 译者:小鼠 发表时间:2008-11-13浏览量:6757评论数:2挑错数:0 作者 ...
- SuSE(SLES)安装配置syslog-ng日志server,可整合splunk
Update History 2014年04月25日 - 撰写初稿 引言 在自己主动化部署AutoYast.自己主动化监控BMC Patrol双方面形成雏形后.日志的收集.管理.分析也顺势成为我们须要 ...
- sha256
SHA-512 (这些有时候也被称做 SHA-2). 简介 SHA 家族 SHA (Secure Hash Algorithm,译作安全散列算法) 是美国国家安全局 (NSA) 设计,美国国家标准与技 ...
- 第 3 章 编写 PAM 应用程序和服务
Solaris 开发者安全性指南 Previous: 第 2 章 开发特权应用程序 Next: 第 4 章 编写使用 GSS-API 的应用程序 第 3 章 编写 PAM 应用程序和服务 可插拔验证模 ...
- birkenfeld / sphinx-contrib — Bitbucket
birkenfeld / sphinx-contrib — Bitbucket README for sphinx-contrib This repository contains a collect ...
- hdu3033(变形分组背包)
题目链接:http://acm.hdu.edu.cn/showproblem.php?pid=3033 题意:Iserlohn要买鞋,有k种牌子,每种牌子至少买一双鞋子.每双鞋子有标价跟实际价值.求用 ...
- H3C低端交换机MAC绑定
1.MAC地址和端口的绑定<h3c>system[h3c]interface e0/1[h3c-interface]mac-address max-count #关闭交换机端口的MAC学习 ...
- hdu3804(树链剖分)
题目连接:http://acm.hdu.edu.cn/showproblem.php?pid=3804 题意:给定一棵n个结点的树及边权,回答m个询问(x,y)满足以下条件的边权: 1)该边在结点1~ ...
- openstack学习笔记一 虚拟机启动过程代码跟踪
openstack学习笔记一 虚拟机启动过程代码跟踪 本文主要通过对虚拟机创建过程的代码跟踪.观察虚拟机启动任务状态的变化,来透彻理解openstack各组件之间的作用过程. 当从horizon界面发 ...
- IIS设置允许下载.exe文件解决方法
最近很多客户使用IIS服务器,然后提示返现宝下载无法找到等无法下载的问题. 返现宝是.exe安装文件,部分服务器或主机可能无法下载. 第一.如果是自己服务器或VPS请按如下设置: 1.设置MIME,让 ...