Js中parentNode,parentElement,childNodes,children之间的区别

yizhihongxing

Js中parentNode,parentElement,childNodes,children之间的区别

在JavaScript中,我们经常需要访问DOM节点。parentNode、parentElement、childNodes以及children都是常用的访问DOM节点的属性或方法,它们之间有着不同的特点和用法。本文将结合示例来详细讲解这四个属性或方法的区别。

parentNode和parentElement

parentNode和parentElement都是访问节点的父节点的属性,它们之间的区别在于parentElement只能访问元素节点的父节点,而parentNode可以访问任何节点的父节点。

<div id="parent">
  <p id="child">这是一个段落</p>
</div>
let child = document.getElementById('child');
console.log(child.parentNode); // #parent
console.log(child.parentElement); // #parent

在上述示例中,child.parentNode和child.parentElement访问到的都是id为parent的div节点。

另外,使用parentElement的得到的结果可能会比较好理解。比如在上述示例中我们把p标签用span标签替换:

<div id="parent">
  <span id="child">这是一个文本</span>
</div>
let child = document.getElementById('child');
console.log(child.parentNode); // #parent
console.log(child.parentElement); // null

此时child.parentNode仍然可以访问到div节点,而child.parentElement返回的则是null,因为span节点的父节点不是一个元素节点,而是文本节点(因为它只包含了一段文本,而不是完整的标签结构)

childNodes和children

childNodes和children都是访问节点的子节点的属性或方法,但是它们之间还是有区别的。childNodes会返回所有的子节点,而children则会忽略掉非元素节点。

<div id="parent">
  <p id="child1">这是一个段落1</p>
  这是一段文本
  <p id="child2">这是一个段落2</p>
</div>
let parent = document.getElementById("parent");
console.log(parent.childNodes.length); // 5
console.log(parent.children.length); // 2

在上述示例中,parent.childNodes访问到的是parent节点下的所有节点,包括两个p标签和两个文本节点,而parent.children则只返回了两个p标签。

本站文章如无特殊说明,均为本站原创,如若转载,请注明出处:Js中parentNode,parentElement,childNodes,children之间的区别 - Python技术站

(0)
上一篇 2023年6月10日
下一篇 2023年6月10日

相关文章

  • Javascript Array pop 方法

    JavaScript 中的 pop() 方法用于从数组中删除最后一个元素,并返回该元素的值。在本教程中,我们将详细介绍 pop() 方法的使用方法。 pop() 方法的基本语法如下: array.pop() 其中,array 是要删除元素的数组。 以下两个示例说明: 示例一:使用 pop() 方法删除数组中的最后一个元素 let arr = ["a…

    JavaScript 2023年5月11日
    00
  • 关于JavaScript命名空间的一些心得

    关于JavaScript命名空间的一些心得 JavaScript命名空间是一种管理和组织JavaScript代码的重要方式。通过使用命名空间,我们可以避免多个JavaScript库或插件之间的代码冲突和命名冲突。以下是关于JavaScript命名空间的一些心得: 什么是JavaScript命名空间? JavaScript命名空间是一种将相关的变量、函数和对象…

    JavaScript 2023年6月11日
    00
  • JavaScript中输出信息的方法(信息确认框-提示输入框-文档流输出)

    JavaScript是一种广泛使用的编程语言,Web开发中使用JavaScript将会发挥重要作用。而输出信息是开发中的一个重要部分,下面将对JavaScript中输出信息的三种方法进行详细讲解: 信息确认框 信息确认框是在需要用户进行确认或者操作之前给予用户的提示窗口。JavaScript提供了一个窗口对象来进行交互,该对象中的confirm方法可以用于生…

    JavaScript 2023年5月28日
    00
  • javascript 按键事件(兼容各浏览器)

    JavaScript按键事件(兼容各浏览器)攻略 在Web开发中,经常需要处理按键事件。JavaScript提供了多种处理按键事件的方法,但是不同浏览器对按键事件的处理有所差异,因此我们需要编写兼容不同浏览器的代码。 键盘码 在处理按键事件之前,我们需要了解键盘码。键盘码是一个表示按键的数字代码。不同的按键对应不同的键盘码。我们可以通过键盘码来判断用户按下了…

    JavaScript 2023年6月11日
    00
  • 详解JavaScript节流函数中的Throttle

    以下是详解 JavaScript 节流函数中的 Throttle 的攻略。 1. 什么是节流函数? 节流函数(throttle function)是一种能够控制函数执行频率的函数。通过指定一个时间间隔,来限制函数的执行次数。可以防止因为某些操作过于频繁导致浏览器卡顿或崩溃的问题,提高了页面的性能和用户的体验。 2. Throttle 的实现方式 Thrott…

    JavaScript 2023年6月10日
    00
  • 深入浅析javascript继承体系

    深入浅析JavaScript继承体系 1. 继承的概念 在JavaScript中,继承是指一个对象获得另一个对象的属性和方法。这种被继承的对象称为父类或基类,继承它的对象称为子类或派生类。继承是面向对象编程中最基本的概念之一,也是JavaScript中的重要概念。 2. 继承的实现方式 在JavaScript中,实现继承有多种方式,常见的包括原型链继承、构造…

    JavaScript 2023年6月10日
    00
  • js jquery ajax的几种用法总结(及优缺点介绍)

    下面是详细讲解“js jquery ajax的几种用法总结(及优缺点介绍)”的完整攻略。 概述 Ajax(Asynchronous JavaScript and XML)是指一种创建交互式、快速动态网页的技术,通过在后台与服务器进行少量数据交换,提升用户体验。在JavaScript中,我们可以通过原生的XMLHttpRequest对象和jQuery的ajax…

    JavaScript 2023年6月11日
    00
  • JS实现键值对遍历json数组功能示例

    下面我将为您详细讲解“JS实现键值对遍历json数组功能示例”的完整攻略。 一、前置知识 在进行键值对遍历json数组的操作前,需要您先了解以下基础知识: JSON数组:JSON是一种轻量级的数据交换格式,通常使用JSON格式来传输数据,JSON数组即是由多个JSON对象组成的数组。 for…in循环:用于遍历一个对象的所有可枚举属性,循环中可以获取到枚…

    JavaScript 2023年5月27日
    00
合作推广
合作推广
分享本页
返回顶部