DOM个人总结

133 阅读1分钟

DOM

节点

DOM

  • 整个文档是一个文档节点
  • 每个 HTML 元素是元素节点
  • HTML 元素内的文本是文本节点
  • 每个 HTML 属性是属性节点
  • 注释是注释节点

方法

获取
原生
原生方法 描述
getElementById() 返回带有指定 ID 的元素。
getElementsByTagName() 返回包含带有指定标签名称的所有元素的节点列表(集合/节点数组)。
getElementsByClassName() 返回包含带有指定类名的所有元素的节点列表
querySelector() document.querySelector('#q1')
querySelectorAll()
jQuery选择器
选择器 方法
层级选择器 空格$, ('a b')
直属子选择器 ">", 直属子节点, $('parent>child')
所有子节点中查找 find()方法
过滤器 ":", $('div:visible')
过滤函数 filter()方法
向上查找 parent()方法
同一层级的节点 next()prev()方法
更新
原生
  • innerHTML,注意对字符编码来避免XSS攻击

  • innerText,可以自动对字符串进行HTML编码

  • xxx.style.color = '#ff0000';
    
jQuery
  • html()
  • text(),无参数调用text()是获取文本,传入参数就变成设置文本,HTML也是类似操作
  • css('name', 'value')方法,name为获取的节点名
删除
原生

调用父节点的removeChild把自己删掉

parent.removeChild(parent.children[0]);
jQuery

remove()方法

var li = $('#test-div>ul>li');
li.remove(); // 所有<li>全被删除

removeClass()方法

div.removeClass('highlight')
添加/插入
原生
  • 使用appendChild,把一个子节点添加到父节点的最后一个子节点
  • parentElement.insertBefore(newElement, referenceElement);,子节点会插入到referenceElement之前。
jQuery

父级节点append()方法

同级节点可以用after()或者before()方法