js DOM常见操作

1. 元素的获取。

  常见的有四种方法。

  (1)document.getElementById():获取对应ID的元素。ID是不能有重复的。所以返回的是一个元素。

    (2)   document.getElementsByTagName():获取对应的标签元素。返回一个数组。

    (3)   document.getElementsByClassName():通过class来获取元素。返回的也是一个数组。注:此方法在IE8浏览器下是不兼容的。

   (4)   document.getElementsByName():通过name属性来获取元素,返回的也是一个数组。

  不常用的两种方法。

  (5)document.documentElement():获取html标签。

  (6)document.body():获取body标签。

  特别的两种

    (7)  document.querySelector("#demo"):获取文档中 id=‘demo‘ 的元素。返回匹配指定选择器的第一个元素。

    (8)  document.querySelectorAll("#demo"):使用方式和 document.querySelector() 方法一样,只是可以获取css选择器匹配的所有元素。

2.元素的操作方法。

  (1)node.appendChild(node1):向某个节点添加一个子节点,这个添加的节点会被放在最后,成为这个节点的最后一个子节点;

  (2)node.removeChild(node1):移除某个节点 。

  (3)insertBefore(nodo1, node2),将node1作为当前元素的子节点,插入到当前元素的节点node2的前面。

  (4)replaceChild(newnode, oldnode);新节点,代替旧结点。

3.获取节点。

  (1)hasChildnodes() 这个方法返回一个布尔值,指示元素是否有子元素。 

  (2)childNodes 返回当前指定元素所有子元素(包括被注释掉的元素)的数组: document.body.childNodes。它返回指定元素的子元素集合,包括HTML节点(元素节点),文本节点(空格也是文本节点)。可以通过nodeType来判断是哪种类型的节点,只有当nodeType==1时才是元素节点,2是属性节点,3 是文本节点。

  (3)children返回当前指定元素所有子元素,但是与childNodes 不同的是,他只会返回HTML节点(元素节点),不返回文本节点。

  (4)firstChildelem.firstChild 返回当前元素下的第一个子节点。这个获取到的节点是以childNodes为 标准的,就是包括HTML节点(元素节点),文本节点(空格也是文本节点),所以返回的有可能是一个文本节点。

  (5)lastChildelem.lastChild返回当前元素下的最后一个子节点。

这个获取到的节点是以childNodes为 标准的,就是包括HTML节点(元素节点),文本节点(空格也是文本节点),所以返回的有可能是一个文本节点。

  (6)nextSbilingelem.nextSbiling 返回紧跟在当前节点后的那一个同级节点(同级元素,不是子元素)。 这个获取到的节点是以childNodes为 标准的,就是包括HTML节点(元素节点),文本节点(空格也是文本节点),所以返回的有可能是一个文本节点

  (7)previousSiblingelem.previousSibling 返回前一个同级节点,跟nextSbiling类似,只不过nextSbiling是返回后一个。

  (8)parentNodeelem.parentNode 返回父节点。

4.属性操作。

  (1)elem.getAttribute(name); 获取元素属性。

  (2)elem.setAttribute(name, value); 设置元素属性。

5. 创建元素,文本节点。

  (1) var p = document.createElement("p")。创建元素,里面的“p”,就是代表创建p元素

div.appendChild(p);就是向div中添加一个p元素,在div的最后面。

  (2) var txt = document.createTextNode("这是文本"); 这是创建文本元素

p.appendChild(txt);向p元素中添加值。

6.获取元素,节点的值。

    <p id="test">123</p> 要获取p之下的文本值

  (1), document.getElementById("test").childNodes[0].nodeValue;(这里不能用children替换childNodes,因为children获取不到 文本节点)。

  (2), document.getElementById("test").innerTEXT;

  (3), document.getElementById("test").innerHTML;

    (2)和(3)的区别:将上面的标签改为:“  <p id="test"><a href="#">123</a></p>  ”

      那么(2)的值还是 123, 但是(3)的值就是<a href="#">123</a>,就是说innerHTML会连html标签也拿到,但是innerText不会。

      

参考链接:https://blog.csdn.net/yuling__ting/article/details/51490302

    :https://blog.csdn.net/change_any_time/article/details/79721554

  

原文地址:https://www.cnblogs.com/xu-xiao-jin/p/9907439.html

时间: 2024-10-03 15:53:04

js DOM常见操作的相关文章

JS Dom节点操作demo!

通过黑马课程的学习,在这里分享一个js Dom中节点操作的小练习 需求:使用js创建一个4*3的表格table. onload = function(){ function c(tagName){ return document.createElement(tagName); } var table = c('table'); var tbody = c('tbody'); table.appendChild(tbody); for(var i = 0;i<4;i++){ var tr = c(

JS 数组常见操作汇总,数组去重、降维、排序、多数组合并实现思路整理

壹 ? 引 JavaScript开发中数组加工极为常见,其次在面试中被问及的概率也特别高,一直想整理一篇关于数组常见操作的文章,本文也算了却心愿了. 说在前面,文中的实现并非最佳,实现虽然有很多种,但我觉得大家至少应该掌握一种,这样在面试能解决大部分数组问题.在了解实现思路后,日常开发中结合实际场景优化实现,提升性能也是后期该考虑的. 本文主要围绕数组去重.数组排序.数组降维.数组合并.数组过滤.数组求差集,并集,交集,数组是否包含某项等知识点展开,附带部分知识拓展,在看实现代码前也建议大家先自

JS DOM基础 操作属性、类、CSS样式

操作属性和类 一.属性节点操作 文本节点内容的获取和修改: 语法:elementNode.attributeName ( 元素节点.属性名)     也可以使用“[ ]” ( 元素节点[属性名]) 注意:一般我们操作属性节点时是不需要获取属性节点的,而是直接通过元素节点获取(/修改)属性节点的值.      特别的,有些属性名称与js关键字或者保留字冲突了,只能用另外的名字: class属性:要写成className(class是关键字). label标签的for属性:写成htmlFor. 通过

js对象常见操作(添加、删除、判断属性)

建一个空对象user:var user=new Object(); 1.添加属性 1.1.一般添加属性(属性名已知)这时user 对象没有任何属性和方法,显然没有任何用途.但可以为它动态的添加属性和方法,例如:user.name="jack";user.age=21;user.sex="male"; user["height"] = 158;  //采用方括号([])语法 user.alert=function(){ //添加方法alert(&q

js计算常见操作

如何实现数字相加 var a = 1, var b = 2, var c = a + b 这样c得出来的解果是12, 使用Number()函数可以解决这个问题,如下 var c = Number(a) + Number(b) 这样c得出来的解果是3, 如何保留小数位,使用该函数 保留2位小数 c.toFixed(2); 原文地址:https://www.cnblogs.com/rdchen/p/9600059.html

原生JS与jQuery操作DOM有什么异同点?

本文和大家分享的主要是原生JS与jQuery操作DOM相关内容,一起来看看吧,希望对大家学习javascript有所帮助. 一.创建元素节点 1.1 原生 JS 创建元素节点 document.createElement("p"); 1.2 jQuery 创建元素节点 $('<p></p>');` 二.创建并添加文本节点 2.1 原生JS创建文本节点 document.createTextNode("Text Content"); 通常创建文

js——DOM操作(一)

DOM:Document Object Model  文档对象模型 文档:html页面 文档对象:页面中元素 文档对象模型:定义  为了能够让程序(js)去操作页面中的元素 DOM会把文档看作是一棵树,同时定义了很多方法来操作这颗树中的每一个元素(节点) DOM节点 如: getElementById getElementByTagName document document.body ... //*************************************** childNode

高效率http页面优化法则一【JS对DOM的操作】

高效http页面优化法则一很多人都认为JS的效率太慢了,都不愿意用js来实现相对困难一点的程序逻辑.在这里我要说的是其实js的效率并不慢,慢的是DOM,如果操作好DOM,你的js效率将提高接近千倍(这并不是什么夸张的数字). 1. 批量增加Dom:使用修改innerHTML的方式 尽量使用修改innerHTML的方式而不是用appendChild的方式; 因为使用innerHTML开销更小,速度更快,同时也更加内存安全. 有一点需要注意的是,用innerHTML方式添加时,一定不要在循环中使用

原生js和Jquery操作DOM

原生javascript和jQuery操作DOM的对比总结 目录: DOM元素节点:1)文档节点:2)元素节点:3)属性节点:4)文本节点:5)注释节点 1)创建节点 2)选择(访问)节点 3)操作: 1)节点操作 1)添加节点 2)删除节点 3)修改内容: 1)文本[text] 2)html 3)表单val 4)改变事件 2)CSS操作 3)动画 下文转自:http://www.jb51.net/article/103583.htm 这篇文章主要给大家介绍了原生JS和jQuery操作DOM的一