1.0   DOM结构

父节点
兄弟节点
当前节点
属性节点
子节点
兄弟节点
一般任意一个节点我们都会从父节点,子节点,以及兄弟节点的角度去考察。节点一般我们只需关注元素节点,属性节点及文本节点即可。

1.2  节点的相关属性(只读的)

1.2.1 nodeType  属性规定节点的
nodeType = 1 元素节点 记住
nodeType = 2 属性节点 记住
nodeType = 3 文本节点 记住
nodeType = 8 注释节点
nodeType = 9 文档
nodeType = 11 document.fragment 1.2.2 nodeName 属性规定节点的名称 元素节点 nodeName = 标签的名称
console.log(elementNode.nodeName); //会将标签名大写打印出来
文本节点 nodeName = #text
console.log(textNode.nodeName); //#text
属性节点 nodeName = 属性的名称
console.log(attrNode.nodeName); //attr name 1.2.3 nodeValue 属性规定节点的值。 元素节点 nodeValue = null;
文本节点 nodeValue = 文本的内容
属性节点 nodeValue = 属性的值

2.0DOM操作增删改查

2.1. 查询
就是获取元素 标准 DOM API
doucment.getElementById
document.getElementsByTagName
document.getElementsByName
document.getElementsByClassName
document.querySelectorAll document.querySelector
亲属访问
属性获取
getAttribute
getAttributeNode
2.2. 增加
创建
document.createEelement 创建元素节点
document.createTextNode 创建文本节点
doucment.createAttribute 属性节点
innerHTML
innerText
cloneNode()
加入
appendChild 追加到结尾处
innerHTML 用法?将元素添加到某个标签内
insertBefore 用法?将元素插入到某一个元素的前面
父元素.insertBefore( 新元素, 旧元素 );
// 将 新元素 插入到 旧元素 的前面
其他
style 的操作
setAttribute( 属性名, 属性值 )
2.3. 删除
删除元素
removeChild
removeAttributeNode
2.4 修改
修改节点
删除节点再加入
修改样式
style.xxx = vvv;
setAttribute
修改文本
innerHTML
innerText
节点操作
nodeValue
修改属性
.xxx = vvv
setAttribute修改属性
replaceChild()

3对于不同DOM节点的操作总结

    虽然上面也全面的总结了相关的操作,但其实在查询使用时我更喜欢根据节点的NodeType来操作,因此对于属性节点和元素节点的常见操作分别归纳了一下

 3.1元素节点
3.1.1 添加 (先创建再添加)   创建    document.createEelement() 创建元素节点   当然使用 innerHTML,cloneChild的方法也能实现创建元素的目的    加入
   * appendChild 追加到结尾处
  * innerHTML
   * insertBefore 3.1.2 删除元素   最常用得当然是removeChild () ; 关于删除子元素:      // 从 node 中删除 一个 div
      node.removeChild( divDOM );
     // 假设 node 节点中只有一个元素 div
       node.innerHTML = ''; 3.1.3修改节点 一般都是删除再加入,即removeChild+appendChild,也可以使用replaceChild() 直接替换 先总结这些,其实DOM的方法虽然多,但好在常用的很少见,希望大家可以在理解DOM结构的基础上熟练操作DOM的apl。 3.2 元素节点
3.2.1 添加属性 doucment.createAttribute() 创建属性节点 使用 setAttribute 添加属性
// 添加自定义, 非标准的属性 ( DOM-Core )     div.setAttribute( 'attrName', 'attrValue' );
使用 .xxx = vvv利用对象的动态特性添加属性
// 添加的标准属性( HTML-DOM )
div.attrName = 'attrValue';
第三种( 了解 )使用 DOM 节点方法
// 纯 DOM-Core 的做法
var attrNode = document.createAttribute( 'test' );//创建属性节点对象
attr.nodeValue = '测试'; //设置属性值
div.setAttributeNode( attrNode ); //添加给div
区别
div.setAttributeNode(attrnode对象)
div.setAttribute('属性名','属性值‘); 3.2.2 删除
removeAttribute(’属性名’)
removeArrtibuteNode(节点对象名)     //removeAttribute 是 为了 简化node.removeAttribute( '属性名' ),不用先获取属性节点再删除,而是直接操作元素节点; 3.33 获取
getAttribute('属性名 ') 获取属性值 //简化了node.getAttributeNode( '属性名' ); getAttributeNode('属性名') 获取属性节点对象 // var attrNode = node.getAttributeNode( '属性名' );
// attrNode.nodeValue;

原生DOM操作方法小结的更多相关文章

  1. 混淆篇之原生DOM操作方法小结

    1.0   DOM结构 1.1先来看结构图: 父节点        兄弟节点        当前节点            属性节点            子节点        兄弟节点一般任意一个节 ...

  2. javascript原生dom操作方法

    一.节点层次属性 考虑空白符的相关层次关系属性: 1.childNodes属性 包含 2.parentNode属性 3.previouseSibling属性和nextSibling属性 4.first ...

  3. 原生DOM探究 -- NodeList v.s. HTMLCollection

    涉及获取元素的主要API 在获取原生DOM元素的时候,主要涉及这几个DOM API(链接为Living Standard): Node及对应集合NodeList Element(继承Node)及对应集 ...

  4. 原生DOM操作vs框架虚拟DOM比较

    1. 原生 DOM 操作 vs. 通过框架封装操作. 这是一个性能 vs. 可维护性的取舍.框架的意义在于为你掩盖底层的 DOM 操作,让你用更声明式的方式来描述你的目的,从而让你的代码更容易维护.没 ...

  5. jquer 使用原生DOM对象

    js中使document.getElementById("ID"); Jquery中可以使用$("#id") 或者$("#id").get( ...

  6. jQuery 对象 与 原生 DOM 对象 相互转换

    区别 jQuery 选择器得到的 jQuery对象 和 原生JS 中的document.getElementById() document.querySelector取得的 DOM对象 是两种不同类型 ...

  7. JQ对象和原生DOM对象

    相同点:两者本质上都是DOM元素. 不同点:JQ对象是在原生DOM对象上进行了一次封装,使开发人员使用起来更简洁.高效. 两者之间用法也完全不同,很说初学者经常混淆. 其实区分两者并不难, 1.语法不 ...

  8. JS原生DOM操作总结

    DOM的主要操作——增.删.改.查节点 (1) 查找节点 document.getElementById('div1') document.getElementsByName('uname') doc ...

  9. 获取原生DOM,diy脚手架,vue-clide使用,element-ui的使用

    一.获取原生DOM的方式 给标签或者属性添加ref属性 //1.添加属性 <div ref='shy'><div> <Home ref='home'></Ho ...

随机推荐

  1. freeMarker(十)——模板语言之内建函数

    学习笔记,选自freeMarker中文文档,译自 Email: ddekany at users.sourceforge.net 1.字符串内建函数 这些内建函数作用于表达式左侧的字符串值. 如果左侧 ...

  2. 「LOJ#10050」「一本通 2.3 例 2」The XOR Largest Pair (Trie

    题目描述 在给定的 $N$ 个整数 $A_1,A_2,A_3...A_n$ 中选出两个进行异或运算,得到的结果最大是多少? 输入格式 第一行一个整数$N$. 第二行$N$个整数$A_i$. 输出格式 ...

  3. Access中一句查询代码实现Excel数据导入导出

    摘 要:用一句查询代码,写到vba中实现Excel数据导入导出,也可把引号中的SQL语句直接放到查询分析器中执行正 文: 导入数据(导入数据时第一行必须是字段名): DoCmd.RunSQL &quo ...

  4. plsql developer v12.1的使用

    1.下载oracle客户端: 配置安装路径到PATH,我的是首先定义了一个环境变量ORACLE_CLIENT_PATH(这个路径其实就是官网下来的zip包解压缩后的路径),然后将这个变量附加到PATH ...

  5. mac下安装node

    学着使用homebrew进行安装,发现很是方便. homebrew是mac下的一款管理安装的工具. 1. 安装homebrew 使用mac自带的ruby下载安装: ruby -e "$(cu ...

  6. 使用cmd命令行方式登录ftp上传下载数据

    部分用户在使用ftp工具登录空间上传下载过程中经常会遇到各种问题,如主动模式,被动模式,以及其他导致无法登陆ftp .上传数据.下载数据的问题,这时候不妨使用一下命令行方式.命令行下可以避免很多由于f ...

  7. 【转】 Pro Android学习笔记(七一):HTTP服务(5):多线程调用HttpClient

    目录(?)[-] 应用共享HttpClient对象的同步问题 创建共享HttpClient代码 创建共享对象 创建可共享的HttpClient对象 使用共享HttpClient对象的代码 基础代码 修 ...

  8. ubuntu dd烧录镜像文件

    df命令查看挂在的U盘和硬盘,ssd 右边可以看到路径 sudo dd if=cn_windows_10_multiple_editions_version_1703_updated_july_201 ...

  9. BluetoothFindRadioClose 函数

    BOOL BluetoothFindRadioClose( HBLUETOOTH_RADIO_FIND hFind );关闭与查找蓝牙无线电相关的枚举句柄.参数: hFind Enumeration ...

  10. 差一点搞混了Transactional注解

    今天给我的Srping业务层加如下Service和Transactional注解: @Service @Scope(BeanDefinition.SCOPE_SINGLETON) @Transacti ...