简单实现JS对dom操作封装


Posted in Javascript onDecember 02, 2015

这篇文章主要介绍了JS简单实现对dom操作封装,下面就直接上代码:

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
<title>js</title>
</head>
<body>
  <div id="aa">测试</div>
</body>
<script type="text/javascript">
//duquery
(function(w){//定义立即执行函数,传入全局对象window  
  function duquery(id){//定义函数,实现去new的操作,  
    function Duquery(id){//定义类
      this.ele=document.getElementById(id);//id查找    
      return this;//返回对象
    };
    Duquery.prototype.html=function(val){//利用原型添加设置html的方法
      this.ele.innerHTML=val;
      return this;//返回对象,执行后可链式操作
    };
    Duquery.prototype.attr=function(key,val){//添加设置属性的方法
      this.ele.setAttribute(key,val);
      return this;
    };
    Duquery.prototype.css=function(key,val){//添加设置样式的方法
      this.ele.style[key]=val;
      return this;
    };
    Duquery.prototype.on=function(event,fun){
      this.ele.addEventListener(event,fun,false);
      return this;
    };  
    return new Duquery(id);//去new处理,返回实例对象
  };
  
  duquery.wait=function(time,fun){//添加延时静态方法,可通过函数名直接使用
    setTimeout(fun,time);
  };  
  duquery.each=function(arr,callback){//添加遍历迭代静态方法
    for(var key in arr){
      callback(key,arr[key]);
    };
  };  
  w.$$=w.duquery=duquery;//类追加到全局对象自定义属性上,可直接调用
  
})(window);
//code
window.onload=function(){
  //类的使用和操作
  $$("aa").attr("bb","456").css("height","200px");
  $$.wait(5000,function(){$$("aa").html("好的")});
  $$("aa").on("click",function(){
    $$("aa").html("事件").css("color","#ffa");
  });
  $$.each([1,2,3,4,5,6],function(index,val){
    if(val==3){
      alert(val);
    }else{
    };
  });
};
</script>
</html>

再为大家分享一个js常用DOM操作,代码如下

<html>
 
<head></head>
<body>
 
<form id="myform">
<input type="text" value="获取id" id="getId" >
 
<input type="button" value="huhu" id="getId1" >
<span>努力学习</span>
 
</form>
 
<script>
//DOM 对象方法
 
//getElementById返回带有指定 ID 的元素
 
/*var byid = document.getElementById("getId");
alert(byid.value);      //获取id
 
//getElementsByTagName返回包含带有指定标签名称的所有元素的节点列表(集合/节点数组)
 
var tagname = document.getElementsByTagName("input");
alert(tagname[0].value);    //获取id
 
//createElement创建元素节点
 
var myform = document.getElementById("myform");
var e = document.createElement("input");    //创建input元素
 
e.type="button";                //给input的type定义值
e.value="嘻嘻哈哈";                //给input的value定义值
 
//appendChild() 把新的子节点添加到指定节点
 
myform.appendChild(e);              //往form里添加创建好的input表单
 
//insertBefore() 在指定的子节点前面插入新的子节点
 
document.body.insertBefore(e,myform);      //把input添加到form前面            
 
//createAttribute()创建属性节点
 
var att=document.createAttribute("class");
att.value="democlass";
 
//setAttributeNode()方法添加新的属性节点
 
document.getElementsByTagName("input")[0].setAttributeNode(att);
 
//createElement创建元素节点
 
var newel = document.createElement("p");
 
//createTextNode() 方法创建新的文本节点
 
newtext=document.createTextNode('xixihaha');
 
//appendChild() 把新的子节点添加到指定节点
 
newel.appendChild(newtext);
 
//appendChild() 把新的子节点添加到指定节点
 
myform.appendChild(newel);
 
// setAttribute() 可以在属性不存在的情况下创建新的属性,我们可以使用这个方法来创建新属性
 
x=document.getElementsByTagName("input");
x[0].setAttribute("asdasd","first");
 
//replaceChild() 方法用于替换节点
 
//第一个参数是新的节点
//第二个参数是旧的节点(要被替换掉的节点)
 
var y1=document.getElementsByTagName("input")[1];
var y2=document.getElementsByTagName("input")[2];
 
myform.replaceChild(y2,y1);
 
//removeChild() 方法删除指定的节点
 
//当已定位需要删除的节点时,就可以通过使用 parentNode 属性和 removeChild() 方法来删除此节点
var span1=document.getElementsByTagName("span")[0];
 
span1.parentNode.removeChild(span1);
*/
 
</script>
 
</body>
</html>

以上就是js针对DOM 的相关常用操作,希望对大家的学习有所帮助。

Javascript 相关文章推荐
javascript 类定义的4种方法
Sep 12 Javascript
javascript圆盘抽奖程序实现原理和完整代码例子
Jun 03 Javascript
JavaScript bold方法入门实例(把指定文字显示为粗体)
Oct 17 Javascript
2014年最火的Node.JS后端框架推荐
Oct 27 Javascript
jQuery判断对象是否存在的方法
Feb 05 Javascript
JavaScript按值删除数组元素的方法
Apr 24 Javascript
jQuery实现固定在网页顶部的菜单效果代码
Sep 02 Javascript
jquery自定义插件开发之window的实现过程
May 06 Javascript
Angularjs中使用layDate日期控件示例
Jan 11 Javascript
jQuery实现的点击标题文字切换字体效果示例【测试可用】
Apr 26 jQuery
jQuery对底部导航进行跳转并高亮显示的实例代码
Apr 23 jQuery
JS实现关闭小广告特效
Jan 29 Javascript
jQuery实现获取绑定自定义事件元素的方法
Dec 02 #Javascript
JS折半插入排序算法实例
Dec 02 #Javascript
如何动态加载外部Javascript文件
Dec 02 #Javascript
javascript实现获取浏览器版本、浏览器类型
Dec 02 #Javascript
JavaScript如何禁止Backspace键
Dec 02 #Javascript
js文本框输入内容智能提示效果
Dec 02 #Javascript
JavaScript使用DeviceOne开发实战(四)仿优酷视频应用
Dec 02 #Javascript
You might like
ADODB结合SMARTY使用~超级强
2006/11/25 PHP
discuz论坛更换域名,详细文件修改步骤
2020/12/09 PHP
javascript基础知识大集锦(二) 推荐收藏
2011/01/13 Javascript
阻止子元素继承父元素事件具体思路及实现
2013/05/02 Javascript
js 通过html()及text()方法获取并设置p标签的显示值
2014/05/14 Javascript
jQuery 隐藏和显示 input 默认值示例
2014/06/03 Javascript
Bootstrap学习笔记之css样式设计(2)
2016/06/07 Javascript
Angular2内置指令NgFor和NgIf详解
2016/08/03 Javascript
webpack常用配置项配置文件介绍
2016/11/07 Javascript
jQuery加载及解析XML文件的方法实例分析
2017/01/22 Javascript
常见的浏览器Hack技巧整理
2017/06/29 Javascript
实例详解JavaScript中setTimeout函数的执行顺序
2017/07/12 Javascript
实例教学如何写vue插件
2017/11/30 Javascript
javascript少儿编程关于返回值的函数内容
2018/05/27 Javascript
详解js根据百度地图提供经纬度计算两点距离
2019/05/13 Javascript
微信小程序实现图片选择并预览功能
2019/07/25 Javascript
解决vue+ element ui 表单验证有值但验证失败问题
2020/01/16 Javascript
基于vue+element实现全局loading过程详解
2020/07/10 Javascript
python基础知识小结之集合
2015/11/25 Python
Python ldap实现登录实例代码
2016/09/30 Python
python如何将两个txt文件内容合并
2019/10/18 Python
python连接mongodb集群方法详解
2020/02/13 Python
Python批量将图片灰度化的实现代码
2020/04/11 Python
如何通过安装HomeBrew来安装Python3
2020/12/23 Python
CSS3 实现footer 固定在底部(无论页面多高始终在底部)
2019/10/15 HTML / CSS
联想韩国官网:Lenovo Korea
2018/05/10 全球购物
中国入世承诺
2014/04/01 职场文书
教师中国梦演讲稿
2014/04/23 职场文书
人事任命书范文
2014/06/04 职场文书
人力资源管理专业自荐信
2014/06/24 职场文书
民主生活会发言材料
2014/10/20 职场文书
聘任证明怎么写
2015/03/02 职场文书
如何才能写好调研报告?
2019/07/03 职场文书
MySQL令人咋舌的隐式转换
2021/04/05 MySQL
详解如何使用Node.js实现热重载页面
2021/05/06 Javascript
详解gantt甘特图可拖拽、编辑(vue、react都可用 highcharts)
2021/11/27 Vue.js