关于js中动态创建对象的

在一些招聘网站中我们常看到一些,数据选择,匹配信息,选择对应的数据然后进行筛选需要的信息。

在js中为了达到数据筛选的目的,并且优化数据我们需要用到动态创建的方法。

利用父节点,对子节点进行动态的添加删除。

今天做了一个基础的数据筛选实例,主要是地区,工种,工资,要求在动态添加到li中,且保证数据的位置不变。

需要灵活的应用:
oUl.removeChild(aLi1[i]);    //oUl为父节点,移除在oUl中的aLi1[i]元素
oUl.insertBefore(oLi,oUl.children[location]); //在oUl父节点中,第location个子节点前插入,oLi
oUl.appendChild(oLi); //添加子节点oLi

具体的算法思路是:

<!DOCTYPE HTML>
<html lang="en">
<head>
<meta charset="UTF-8" />
<style>
li{list-style:none;position:relative;left:30px;top:10px;margin:3px;}
#ul1 li{ float:left; }
</style>
<title>选择筛选</title>
<script src="ku.js"></script>
<script>
window.onload = function(){
aUl = document.getElementsByTagName('ul');
oUl = document.getElementById('ul1');


aLi = aUl[0].getElementsByTagName('li');//将地区的li封装在aLi标签中
aLizw = aUl[1].getElementsByTagName('li');//将职位的li封装在aLizw标签中,方便对数据操作时分类处理
aLigz = aUl[2].getElementsByTagName('li');//将工资li标签封装在aLigz标签中,


addli(aLi,'we',0);
addli(aLizw,'w',1);
addli(aLigz,'h',2);


function addli(obj,tagname,location){
for(var i = 0; i<obj.length;i++){
obj[i].onclick = function(){
var aLi1 = oUl.getElementsByTagName('li');
//判断添加的地址li中是否已经添加如果添加了,删除掉原来的地址
//添加新的地址
for(var i=0;i<aLi1.length;i++){
if( aLi1[i].className == tagname){
oUl.removeChild(aLi1[i]);//给同类的标签添加相同的class名称,方便进行数据处理
//这样实现了删除原有的地址li,然后在添加新的li
}                          
}
//动态创建li的过程
var oLi = document.createElement('li');


oLi.innerHTML = this.innerHTML;//将选中的值放入li中
addClass(oLi,tagname);//


if( oUl.children[0] ){
oUl.insertBefore(oLi,oUl.children[location]);//如果有元素的话,在相应位置上插入对应的数组
}else{
oUl.appendChild(oLi);//如果一个元素都没有直接插入元素即可
}

}
}
}

}
</script>
</head>
<body>
<ul>地区
<li>九江</li><li>瑞昌</li><li>南昌</li>
</ul>
<ul>职位
<li>网页制作</li><li>java攻城师</li><li>美工美化</li>
</ul>
<ul>工资
<li>5000</li><li>4000</li><li>8000</li>
</ul>
<ul id="ul1" class="box1 box" >


</ul>
</body>
</html>
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值