资讯专栏INFORMATION COLUMN

js--原生js DOM操作(增删改差)

zhangrxiang / 2070人阅读

摘要:得到空白节点之后,移到父节点上,删除子节点如果和在获取节点的过程中遇到

js--DOM操作

dom获取

DOM获取

</>复制代码

  1. //参数是字符串
  2. document.getElementById() 获取特定 ID 元素的节点
  3. document.getElementsByTagName() 获取相同元素的节点列表
  4. document.getElementsByName() 获取相同名称的节点列表
  5. document.getAttribute() 获取特定元素节点属性的值
  6. //参数是ccs选择器字符串
  7. document.querySelectorAll(".b1 .c");
  8. document.querySelector(".b1 .c");
  9. //层次节点操作
  10. childNodes 获取当前元素节点的所有子节点
  11. firstChild 获取当前元素节点的第一个子节点
  12. lastChild 获取当前元素节点的最后一个子节点
  13. ownerDocument 获取该节点的文档根节点,相当与 document
  14. parentNode 获取当前节点的父节点
  15. previousSibling 获取当前节点的前一个同级节点
  16. nextSibling 获取当前节点的后一个同级节点
  17. attributes 获取当前元素节点的所有属性节点集合
  18. //增删改
  19. write() 这个方法可以把任意字符串插入到文档中
  20. createElement() 创建一个元素节点
  21. cloneNode() 复制节点
  22. removeChild() 移除节点
  23. repalceChild() 将新节点替换旧节点
  24. insertBefore() 将新节点插入在前面
  25. insertAfter() 将新节点插入在前面
  26. function insertAfter(newElement, targetElement) {
  27. //得到父节点
  28. var parent = targetElement.parentNode;
  29. if (parent.lastChild === targetElement) {
  30. parent.appendChild(newElement);
  31. } else {
  32. parent.insertBefore(newElement, targetElement.nextSibling);
  33. }
  34. }
  35. appendChild() 将新节点追加到子节点列表的末尾
  36. createTextNode() 创建一个文件节点

2 元素节点操作

</>复制代码

  1. //内容操作
  2. document.getElementById("box").tagName; //元素名
  3. document.getElementById("box").innerHTML; //元素内容
  4. //属性操作
  5. //接受两个参数,属性名,属性值 尽量不要用
  6. setAttribute() 设置特定元素节点属性的值
  7. removeAttribute() 移除特定元素节点属性
  8. //改变样式
  9. document.getElementById("box").id; //获取 id
  10. document.getElementById("box").id = "person"; //设置 id
  11. document.getElementById("box").title; //获取 title
  12. document.getElementById("box").title = "标题" //设置 title
  13. document.getElementById("box").style; //获取 CSSStyleDeclaration 对象
  14. document.getElementById("box").style.color; //获取 style 对象中 color 的值
  15. document.getElementById("box").style.color = "red"; //设置 style 对象中 color 的值
  16. document.getElementById("box").className; //获取 class
  17. document.getElementById("box").className = "box"; //设置 class

3 节点类型

</>复制代码

  1. //节点可以分为元素节点、属性节点和文本节点,而这些节点又有三个非常有用的属性 ,
  2. //分别为:nodeName、nodeType 和 nodeValue。
  3. 节点类型 nodeName nodeType nodeValue
  4. 元素 元素名称 1 null
  5. 属性 属性名称 2 属性值
  6. 文本 #text 3 文本内容(不包含 html)

4 在非 IE 中,标准的 DOM 具有识别空白文本节点的功能,所以在火狐浏览器是 7
个,而 IE 自动忽略了,如果要保持一致的子元素节点,需要手工忽略掉它。

</>复制代码

  1. function filterSpaceNode(nodes) {
  2. for (var i = 0; i < nodes.length; i ++) {
  3. if (nodes[i].nodeType == 3 && /^s+$/.test(nodes[i].nodeValue)) {
  4. //得到空白节点之后,移到父节点上,删除子节点
  5. nodes[i].parentNode.removeChild(nodes[i]);
  6. }
  7. }
  8. return nodes;
  9. }
  10. //如果 firstChild、lastChild、previousSibling 和 nextSibling 在获取节点的过程中遇到
  11. function removeWhiteNode(nodes) {
  12. for (var i = 0; i < nodes.childNodes.length; i ++) {
  13. if (nodes.childNodes[i].nodeType === 3 && /^s+$/.test(nodes.childNodes[i].nodeValue)) {
  14. nodes.childNodes[i].parentNode.removeChild(nodes.childNodes[i]);
  15. }
  16. }
  17. return nodes;
  18. }

文章版权归作者所有,未经允许请勿转载,若此文章存在违规行为,您可以联系管理员删除。

转载请注明本文地址:https://www.ucloud.cn/yun/107644.html

相关文章

  • Jquery与Bootstrap实现后台管理页面删改查功能

    摘要:使用与实现了一个比较简单但功能齐全的增删改查功能的后台管理页面,虽然只是一个页面,但麻雀虽小五脏俱全,常用的功能都用到了,本例用原生的与配合使用,不考虑的重构性及打包,该例子零耦合,开箱即用。相关文章实现双击内容变为可编辑状态 使用jquery与bootstrap实现了一个比较简单但功能齐全的增删改查功能的后台管理页面,虽然只是一个CRUD页面,但麻雀虽小五脏俱全,JS常用的功能都用到...

    yankeys 评论0 收藏0
  • 前端知识点总结——JQ

    摘要:前端知识点总结什么是第三方的极简化的操作的函数库第三方下载极简化是操作的终极简化个方面增删改查事件绑定动画效果操作学习还是在学,只不过简化了函数库中都是函数,用函数来解决一切问题为什么使用操作的终极简化解决了大部分浏览器兼容性问题凡是让用的 前端知识点总结——JQ 1.什么是jQuery: jQuery: 第三方的极简化的DOM操作的函数库 第三方: 下载 极简化: 是DOM操作的...

    jayzou 评论0 收藏0

发表评论

0条评论

最新活动
阅读需要支付1元查看
<