DOM操作应用

· 创建和插入元素

//先创建一个LI
var oLi = document.createElement('li');
//把创建的LI插入到UL当中
oUl.appendChild(oLi);
· 创建并添加内容在里面

var oLi = document.createElement('li');
var aLi = oUl.getElementsByTagName('li');
oLi.innerHTML=oTxt.value;
				
//添加的li在末尾
//oUl.appendChild(oLi);

//添加的li在前面
if(aLi.length>0)
{
	oUl.insertBefore(oLi,aLi[0]);
}
else
{
	oUl.appendChild(oLi);
}
· 删除元素

//删除当前的父节点 就是当前的li
oUl.removeChild(this.parentNode);
· 创建文档碎片

//创建文档碎片
var oFrag=document.createDocumentFragment();
	
for(var i=0;i<10000;i++)
{
	var oLi=document.createElement('li');	
	oFrag.appendChild(oLi);
}
oUl.appendChild(oFrag);
· 表格的便捷操作

//alert(oTab.getElementsByTagName('tbody')[0].getElementsByTagName('tr')[0].getElementsByTagName('td')[1].innerHTML);
//上面的语句可以便捷操作为:
alert(oTab.tBodies[0].rows[0].cells[1].innerHTML);
· 表格隔行变色

for(var i=0;i<oTab.tBodies[0].rows.length;i++)
{	
	if(i%2)
	{
		oTab.tBodies[0].rows[i].style.background='gray';
	}
	else
	{
		oTab.tBodies[0].rows[i].style.background='';
	}
}
· 表格隔行变色鼠标进入高亮

		for(var i=0;i<oTab.tBodies[0].rows.length;i++)
		{	
			var oldColor = '';
			oTab.tBodies[0].rows[i].οnmοuseοver=function()
			{	
				oldColor = this.style.background;
				this.style.background='green';
			};
			oTab.tBodies[0].rows[i].οnmοuseοut=function()
			{
				this.style.background=oldColor;
			};

			if(i%2)
			{
				oTab.tBodies[0].rows[i].style.background='gray';
			}
			else
			{
				oTab.tBodies[0].rows[i].style.background='';
			}
		}
· 表格的添加和删除

		//ID就是行的长度加1
		var id = oTab.tBodies[0].rows.length+1;

		//添加表格功能
		oBtn.οnclick=function()
		{
			var oTr = document.createElement('tr');
			
			//添加第一列内容
			var oTd = document.createElement('td');
			//ID就是行的长度加1,再自增
			oTd.innerHTML=id++;
			oTr.appendChild(oTd);

			//添加第二列内容
			var oTd = document.createElement('td');
			//内容是输入的姓名
			oTd.innerHTML=oName.value;
			oTr.appendChild(oTd);

			//添加第三列内容
			var oTd = document.createElement('td');
			//内容是输入的年龄
			oTd.innerHTML=oAge.value;
			oTr.appendChild(oTd);

			//添加第四列内容
			var oTd = document.createElement('td');
			//内容是删除
			oTd.innerHTML='<a href="javascript:;">删除</a>';
			oTr.appendChild(oTd);

			//删除的功能实现
			oTd.getElementsByTagName('a')[0].οnclick=function()
			{
				oTab.tBodies[0].removeChild(this.parentNode.parentNode);
			}
			oTab.tBodies[0].appendChild(oTr);
		};
·  表格搜索1-基础字符串比较

		oBtn.οnclick=function()
		{	
			//给每一行做循环
			for(var i=0;i<oTab.tBodies[0].rows.length;i++)
			{	
				//如果行里面的第2个元素(name)等于文本框的内容,就黄色背景显示,否则背景为空
				if(oTab.tBodies[0].rows[i].cells[1].innerHTML==oTxt.value)
				{
					oTab.tBodies[0].rows[i].style.background='yellow';
				}
				else
				{
					oTab.tBodies[0].rows[i].style.background='';
				}
			}
		};
·  表格搜索2-忽略大小写

		oBtn.οnclick=function()
		{	
			//给每一行做循环
			for(var i=0;i<oTab.tBodies[0].rows.length;i++)
			{	
				//如果行里面的第2个元素等于文本框的内容,就黄色背景显示,否则背景为空
				//最后加上toLowerCase(),让他们都转换成小写,实现忽略大小写搜索
				var sTab = oTab.tBodies[0].rows[i].cells[1].innerHTML.toLowerCase();
				var sTxt = oTxt.value.toLowerCase();

				if(sTab == sTxt)
				{
					oTab.tBodies[0].rows[i].style.background='yellow';
				}
				else
				{
					oTab.tBodies[0].rows[i].style.background='';
				}
			}
		};
·  表格搜索3-模糊搜索

		oBtn.οnclick=function()
		{	
			//给每一行做循环
			for(var i=0;i<oTab.tBodies[0].rows.length;i++)
			{	
				//如果行里面的第2个元素等于文本框的内容,就黄色背景显示,否则背景为空
				//最后加上toLowerCase(),让他们都转换成小写,实现忽略大小写搜索
				var sTab = oTab.tBodies[0].rows[i].cells[1].innerHTML.toLowerCase();
				var sTxt = oTxt.value.toLowerCase();
				
				//模糊搜索:search(),找到就返回字符串出现的位置,没找到返回-1
				//不等于-1,就是找到了的意思
				if(sTab.search(sTxt)!=-1)
				{
					oTab.tBodies[0].rows[i].style.background='yellow';
				}
				else
				{
					oTab.tBodies[0].rows[i].style.background='';
				}
			}
		};
·  表格搜索4-关键字搜索

		oBtn.οnclick=function()
		{	
			
			for(var i=0;i<oTab.tBodies[0].rows.length;i++)
			{	
				var sTab = oTab.tBodies[0].rows[i].cells[1].innerHTML.toLowerCase();
				var sTxt = oTxt.value.toLowerCase();
				
				//关键字用 ' ' (空格)隔开
				var arr = sTxt.split(' ');

				//先让背景为空
				oTab.tBodies[0].rows[i].style.background='';

				//在关键字的长度做一个循环,让每一个关键字都搜索
				for(var j=0;j<arr.length;j++)
				{
					if(sTab.search(arr[j])!=-1)
					{
						oTab.tBodies[0].rows[i].style.background='yellow';
					}
				}
			}
		};
·  表格搜索5-筛选

		oBtn.οnclick=function()
		{	
			
			for(var i=0;i<oTab.tBodies[0].rows.length;i++)
			{	
				var sTab = oTab.tBodies[0].rows[i].cells[1].innerHTML.toLowerCase();
				var sTxt = oTxt.value.toLowerCase();

				var arr = sTxt.split(' ');

				//先让所有的行都隐藏
				oTab.tBodies[0].rows[i].style.display='none';

				for(var j=0;j<arr.length;j++)
				{
					if(sTab.search(arr[j])!=-1)
					{
						//如果符合条件,就显示出来
						oTab.tBodies[0].rows[i].style.display='block';
					}
				}
			}
		};
·  表格排序

		oBtn.onclick = function()
		{	
			var arr=[];

			//把行全部放到数组arr里面
			for(var i=0;i<oTab.tBodies[0].rows.length;i++)
			{
				arr[i]=oTab.tBodies[0].rows[i];
			}
			
			//运用数组的sort()函数对arr的第一列进行排序功能
			arr.sort(function (tr1,tr2)
				{
					var n1 = parseInt(tr1.cells[0].innerHTML);
					var n2 = parseInt(tr2.cells[0].innerHTML);

					return n1-n2;
				});
			
			//把排序好的数组arr加到表格里面
			for(var i=0;i<arr.length;i++)
			{
				oTab.tBodies[0].appendChild(arr[i]);
			}
		};
笔记:

DOM操作应用


·创建、插入和删除DOM元素(this的使用)
创建:createElement() ,之后添加 oUl.appendChild(oLi); 格式:父级.appendChild(子节点);
插入:父级.appendChild(子节点) ,父级.insertBefore(子节点,在谁之前插入)
IE 有兼容性问题 ,联合两个插入方法用if判断解决
删除:removeChild(),


·文档碎片
创建文档碎片:createDocumentFragment();


DOM操作应用(高级)
·表格应用
<thead>表头, <tbody>表格的内容,便捷操作:
getElementsByTagName('tbody')[0] = tBodies[0]
getElementsByTagName('tr')[0] = rows[0]
getElementsByTagName('td')[0] = cells[0]
tBodies是数组 、一个表格只能有一个表头tHead表尾tFoot


·表格搜索: 
忽略大小写搜索:toLowerCase() :转成全小写的形式
模糊搜索:search(),找到就返回字符串出现的位置,没找到返回-1
关键字搜索:split()
筛选:先让所有的display为none隐藏起来,符合条件display就变成block显示出来


·表格排序
appendChild()的使用:1.先把元素从原有的父级上删掉 2.添加到新的父级
sort()的使用(数组排序)












  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值