(六)原生DOM方法总结

1.Node(节点)级别:

// someNode 表示一个节点的引用

//全部子节点,一个nodeList对象
someNode.childNodes

//父节点
someNode.parentNode

//上一个节点
someNode.previousSibling

//下一个节点
someNode.nextSibling

//第一个子节点
someNode.firstChild
someNode.firstChild == someNode.childNodes[0] //true

//最后一个子节点
someNode.lastChild
someNode.lastChild == someNode.childNodes[someNode.childNodes.length-1]//true

//是否有子节点
someNode.hasChildNodes() //有一个或多个子节点时 true

//新增节点到childNodes末尾,并返回新增的节点
var returnNode = someNode.appendChild(newNode)
returnNode == someNode.lastChild   //true

//对已经在childNodes中的节点使用appendChild(),相当于移动到最后
var returnNode = someNode.appendChild(someNode.firstChild)
returnNode == someNode.lastChild //true

//插入节点到参照节点之前,返回被插入的节点
someNode.insertBefore(insertNode,referenceNode)

//替换第二个节点,返回并从dom中移除它
someNode.replaceChild(insertNode,replaceNode)

//移除节点,仍归文档所有但在文档中没有位置
someNode.removeChild(toBeRemoveNode)

//克隆节点
someNode.cloneNode(true) //深复制,会同时复制它所包含的子节点
someNode.cloneNode(false) //浅复制,仅复制当前节点

2.document(文档)级别:

//元素获取---------------------------------------------------------------------------
//id
var ele = document.getElementById(eleId)

//tagName(获得一个类似数组的动态HTMLCollection对象,)
var eleCollecton = document.getElementsByTagName(tagName);
eleCollecton.namedItem(eleName); //用该方法获取被命名的元素
eleCollecton[eleName]; //用方括号+命名获取元素

//name(多用于表单)
document.getElementsByName(eleName);

//class获取
ele.getElementsByClassName(className);

//css选择器
document.querySelector(CssSelector)     //返回匹配的第一个元素
document.querySelectorAll(CssSelector)  //返回匹配元素的Nodelist

//快捷方式---------------------------------------------------------------------------
//指向<html>
var html = document.documentElement;
html == document.childNodes[0] //true
html == document.firstChild    //true

//指向<body>
var body = document.body;

//文档标题
var pageTitle = document.title;
pageTitle = "new title";

//网页请求相关
document.URL        //完整url
document.domain     //域名
document.referrer   //来源

//其他
document.anchors //所有带name的<a>元素
document.forms   //所有的<form>元素
document.images  //所有的<img>元素
document.links   //所有带href的<a>元素

3.element(元素)级别:

//元素属性,可直接赋值修改
var ele = document.getElementById(eleId);
ele.id          // id
ele.className   // class
ele.title       // 附加说明
ele.lang        // 语言
ele.dir         // 文字方向

//获取特性 attributeName = id、class、title、lang、dir及data-xx
ele.getAttribute(attributeName) 
//使用getAttribute()与直接使用元素属性的区别:获取样式和事件处理时
ele.getAttribute('style')  //返回css字符串
ele.style                  //返回一个style对象 
ele.getAttribute('onclick')//返回函数字符串
ele.onclick                //返回一个js函数  

//设置特性
ele.setAttribute(attributeName,value)

//attributes属性 元素所有特性的动态集合(一个NamedNodeMap对象)
//获取或设置特性的值    
ele.attributes.getNamedItem(attributeName).nodeValue 
//删除给定名称的特性,并返回特性节点
ele.attributes.removeNamedItem(attributeName).nodeValue 
//新增一个特性节点
ele.attributes.setNamedItem(attributeName)
//返回pos位置的节点             
ele.attributes.item(pos).nodeValue 

//创建元素
document.createElement(tagName);
document.createElement('<div id=\"myNewDiv\"></div>'); //IE特有

//文档片段 一段不在文档中的元素集合,多用于作为临时容器
document.createDocumentFragment()

//元素遍历    
ele.childElementCount       //返回子元素的个数
ele.firstElementChild       //第一个子元素,firstChild的元素版
ele.lastElementChild        //最后一个子元素,lastChild的元素版
ele.previousElementSibling  //前一个兄弟元素 previousSibling元素版
ele.nextElementSibling      //后一个兄弟元素 nextSibling 元素版

//获取类名
ele.className //包含所有类名的字符串,修改单个类名需字符串转数组解析
ele.classList //class集合属性
ele.classList.add(className)        //添加一个类
ele.classList.contains(className)   //是否包含一个类
ele.classList.remove(className)     //移除一个类
ele.classList.toggle(className)     //有,移除/没有,添加

//修改样式
ele.style.[驼峰写法的css属性] //可以同时用于设置或者获取
ele.style.width = "100px" 
ele.style.height = "50px"
ele.style.backgroundColor = "red"
ele.style.borderBottom = "1px solid black"

//获得计算样式
ele.currentStyle                                            //ie
document.defaultView.getComputedStyle(ele,[null][":after"]) //其他

//插入/修改
ele.innerHTML  //ele内部的html元素字符串
ele.outerHTML  //包含ele本身以及其子元素的字符串
                     
最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
  • 序言:七十年代末,一起剥皮案震惊了整个滨河市,随后出现的几起案子,更是在滨河造成了极大的恐慌,老刑警刘岩,带你破解...
    沈念sama阅读 194,390评论 5 459
  • 序言:滨河连续发生了三起死亡事件,死亡现场离奇诡异,居然都是意外死亡,警方通过查阅死者的电脑和手机,发现死者居然都...
    沈念sama阅读 81,821评论 2 371
  • 文/潘晓璐 我一进店门,熙熙楼的掌柜王于贵愁眉苦脸地迎上来,“玉大人,你说我怎么就摊上这事。” “怎么了?”我有些...
    开封第一讲书人阅读 141,632评论 0 319
  • 文/不坏的土叔 我叫张陵,是天一观的道长。 经常有香客问我,道长,这世上最难降的妖魔是什么? 我笑而不...
    开封第一讲书人阅读 52,170评论 1 263
  • 正文 为了忘掉前任,我火速办了婚礼,结果婚礼上,老公的妹妹穿的比我还像新娘。我一直安慰自己,他们只是感情好,可当我...
    茶点故事阅读 61,033评论 4 355
  • 文/花漫 我一把揭开白布。 她就那样静静地躺着,像睡着了一般。 火红的嫁衣衬着肌肤如雪。 梳的纹丝不乱的头发上,一...
    开封第一讲书人阅读 46,098评论 1 272
  • 那天,我揣着相机与录音,去河边找鬼。 笑死,一个胖子当着我的面吹牛,可吹牛的内容都是我干的。 我是一名探鬼主播,决...
    沈念sama阅读 36,511评论 3 381
  • 文/苍兰香墨 我猛地睁开眼,长吁一口气:“原来是场噩梦啊……” “哼!你这毒妇竟也来了?” 一声冷哼从身侧响起,我...
    开封第一讲书人阅读 35,204评论 0 253
  • 序言:老挝万荣一对情侣失踪,失踪者是张志新(化名)和其女友刘颖,没想到半个月后,有当地人在树林里发现了一具尸体,经...
    沈念sama阅读 39,479评论 1 290
  • 正文 独居荒郊野岭守林人离奇死亡,尸身上长有42处带血的脓包…… 初始之章·张勋 以下内容为张勋视角 年9月15日...
    茶点故事阅读 34,572评论 2 309
  • 正文 我和宋清朗相恋三年,在试婚纱的时候发现自己被绿了。 大学时的朋友给我发了我未婚夫和他白月光在一起吃饭的照片。...
    茶点故事阅读 36,341评论 1 326
  • 序言:一个原本活蹦乱跳的男人离奇死亡,死状恐怖,灵堂内的尸体忽然破棺而出,到底是诈尸还是另有隐情,我是刑警宁泽,带...
    沈念sama阅读 32,213评论 3 312
  • 正文 年R本政府宣布,位于F岛的核电站,受9级特大地震影响,放射性物质发生泄漏。R本人自食恶果不足惜,却给世界环境...
    茶点故事阅读 37,576评论 3 298
  • 文/蒙蒙 一、第九天 我趴在偏房一处隐蔽的房顶上张望。 院中可真热闹,春花似锦、人声如沸。这庄子的主人今日做“春日...
    开封第一讲书人阅读 28,893评论 0 17
  • 文/苍兰香墨 我抬头看了看天上的太阳。三九已至,却和暖如春,着一层夹袄步出监牢的瞬间,已是汗流浃背。 一阵脚步声响...
    开封第一讲书人阅读 30,171评论 1 250
  • 我被黑心中介骗来泰国打工, 没想到刚下飞机就差点儿被人妖公主榨干…… 1. 我叫王不留,地道东北人。 一个月前我还...
    沈念sama阅读 41,486评论 2 341
  • 正文 我出身青楼,却偏偏与公主长得像,于是被迫代替她去往敌国和亲。 传闻我的和亲对象是个残疾皇子,可洞房花烛夜当晚...
    茶点故事阅读 40,676评论 2 335

推荐阅读更多精彩内容

  • 本章内容 理解包含不同层次节点的 DOM 使用不同的节点类型 克服浏览器兼容性问题及各种陷阱 DOM 是针对 HT...
    闷油瓶小张阅读 620评论 0 1
  • Node类型 DOM1级定义了一个Node接口,该接口由DOM中所有节点类型实现。这个Node接口在JS中是作为N...
    Maggie_77阅读 413评论 0 0
  • 文本整理了javascript操作DOM的一些常用的api,根据其作用整理成为创建,修改,查询等多种类型的api,...
    jjOri阅读 450评论 0 2
  • “我们老三养汉了!” 老大老五把我暗搓搓拉到角落,分享一个劲爆的消息。 老三是我们系公认的学霸美人,学习好,奖学金...
    西窗少女阅读 205评论 0 0
  • 喜欢那些摘录和写的小语,这一句句的小语支撑了我整个学生时代。每每看到那一句句优美的词句都会忍不住要把它写到本子里。...
    妖孽只在夜里哭泣阅读 433评论 0 0