js获取DOM节点的方式

js获取DOM节点的方式

getElementById 是通过标签的 id 名称来获取标签的

getElementsByClassName 是通过标签的 class 名称来获取标签的

getElementsByTagName 是通过过标签的 标签 名称来获取标签的

querySelector 是按照选择器的方式来获取第一个元素

querySelectorAll 是按照选择器的方式来获取所有元素

1.通过ID获取(getElementById)

//因为在一个页面中 id 是唯一的,所以获取到的就是一个元素
<body>
  <div id="box"></div>
  <script>
      var box = document.getElementById('box')
      console.log(box) // <div></div>
  </script>
</body>

2.通过class名称来获取(getElementsByClassName )

//因为页面中可能有多个元素的 class 名称一样,所以获取到的是一组元素哪怕你获取的 class 只有一个,
//那也是获取一组元素,只不过这一组中只有一个 DOM 元素而已
<body>
  <div calss="box"></div>
  <script>
      var box = document.getElementsByClassName('box')
      console.log(box) // [<div></div>]
      console.log(box[0]) // <div></div>
  </script>
</body>

3.getElementsByTagName通过标签名称来获取(getElementsByTagName)

// 因为页面中可能有多个元素的 标签 名称一样,所以获取到的是一组元素
// 哪怕真的只有一个这个标签名,那么也是获取一组元素,只不过这一组中只有一个 DOM 元素而已
<body>
  <div></div>
  <script>
      var box = document.getElementsByTagName('div')
      console.log(box) // [<div></div>]
      console.log(box[0]) // <div></div>
  </script>
</body>

4.通过选择器的方式来获取(querySelector)

// 也就是说,按照我们写 css 的时候的选择器来获取
// 这个方法只能获取到一个元素,并且是页面中第一个满足条件的元素
<body>
  <div>第一个div</div>
  <div class="box">第二个div</div>
  <div id="box">第三个div</div>
  <div number="1">第四个div</div>
  <script>
  	console.log(document.querySelector('div')) // 获取页面中的第一个 div 元素 
	console.log(document.querySelector('.box')) // 获取页面中第一个有 box 类名的元素
	console.log(document.querySelector('#box')) // 获取页面中第一个 id 名为 box 的元素
	console.log(document.querySelector('div[number = '1']')) // 获取页面中div属性名为number = 1的元素
  </script>
</body>

5.通过选择器的方式来获取所有元素(querySelectorAll )

//这个方法能获取到所有满足条件的元素,以一个伪数组的形式返回
<body>
  <div>第一个div</div>
  <div class="box">第二个div</div>
  <div id="box">第三个div</div>
  <div number="1">第四个div</div>
  <script>
  	console.log(document.querySelectorAll('div')[0]) // 获取页面中的第一个 div 元素 
	console.log(document.querySelectorAll('.box')[0]) // 获取页面中第一个有 box 类名的元素
	console.log(document.querySelectorAll('#box')[0]) // 获取页面中第一个 id 名为 box 的元素
	console.log(document.querySelectorAll('div[number = '1']')[0]) // 获取页面中div属性名为number = 1的元素
  </script>
</body>
JavaScript 提供了多种方法来操作 DOM(文档对象模型)节点,这些方法允许开发者动态地访问和修改网页的内容、结构和样式。以下是一些常见的 DOM 节点操作方法: ### 创建节点 - `document.createElement(tagName)`:创建一个指定标签名的新元素节点。 - `document.createTextNode(text)`:创建一个包含指定文本的新文本节点。 - `document.createAttribute(name)`:创建一个具有指定名称的新属性节点。 ### 添加节点 - `appendChild(node)`:将一个节点添加到指定父节点的子节点列表的末尾。 - `insertBefore(newNode, referenceNode)`:在指定的参考子节点之前插入一个新的子节点。 ### 删除节点 - `removeChild(node)`:从 DOM 中移除指定的子节点。 - `parent.replaceChild(newNode, oldNode)`:用一个新的子节点替换旧的子节点[^5]。 ### 替换节点 - `replaceChild(newNode, oldNode)`:使用新节点替换已有的某个子节点[^4]。 ### 克隆节点 - `cloneNode(deep)`:创建调用该方法节点的一个副本。如果参数 `deep` 为 `true`,则复制所有后代节点;如果为 `false`,则只复制当前节点[^4]。 ### 修改节点内容 - `textContent`:设置或获取指定节点的文本内容,会自动转义 HTML。 - `innerHTML`:设置或获取指定节点HTML 内容,不会自动转义 HTML[^3]。 ### 查询节点 - `getElementById(id)`:通过元素的 ID 获取单个元素节点。 - `getElementsByClassName(className)`:通过类名获取一组元素节点。 - `getElementsByTagName(tagName)`:通过标签名获取一组元素节点。 - `querySelector(selector)`:返回文档中匹配指定 CSS 选择器的第一个元素。 - `querySelectorAll(selector)`:返回文档中匹配指定 CSS 选择器的所有元素。 ### 节点属性操作 - `setAttribute(name, value)`:给元素添加或更新一个属性。 - `getAttribute(name)`:获取元素的属性值。 - `removeAttribute(name)`:移除元素的指定属性。 ### 节点关系导航 - `parentNode`:获取当前节点的父节点。 - `childNodes`:获取当前节点的所有子节点的集合。 - `firstChild` 和 `lastChild`:分别获取第一个和最后一个子节点。 - `nextSibling` 和 `previousSibling`:分别获取下一个和上一个同级节点。 这些方法提供了丰富的接口来操纵网页上的元素,从而实现动态更新页面内容、响应用户事件等交互功能。 ```javascript // 示例:创建并添加新节点 var newParagraph = document.createElement("p"); newParagraph.textContent = "这是一个新段落。"; document.body.appendChild(newParagraph); // 示例:修改节点内容 var element = document.getElementById("element-to-modify"); element.textContent = "新的内容"; element.innerHTML = "<strong>新的内容</strong>"; // 示例:删除节点 var node = document.getElementById("myNode"); var parent = node.parentNode; parent.removeChild(node); // 示例:替换节点 var newNode = document.createElement("div"); newNode.innerHTML = "New Node"; parent.replaceChild(newNode, node); ``` 以上代码片段展示了如何使用 JavaScript 进行基本的 DOM 节点操作,包括创建新节点、修改现有节点的内容、删除节点以及替换节点。通过这些方法,可以构建出复杂且交互性强的网页应用。
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值