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

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日

相关文章

  • php cookie用户登录的详解及实例代码

    现在我来给您详细讲解“php cookie用户登录的详解及实例代码”的完整攻略。 概述 在网站开发中,登录是一个非常重要的功能。其中,保存用户登录状态的方式有多种,其中之一就是通过使用cookie来保存用户信息。本文将通过示例代码,详细讲解如何使用php cookie来实现用户登录。 实现步骤 步骤一:创建登录页面 首先,我们需要在HTML中创建一个登录页面…

    JavaScript 2023年6月11日
    00
  • javascript 人物逼真行走,已完成

    下面是详细讲解”javascript 人物逼真行走,已完成”的完整攻略。 简介 本攻略旨在讲解如何通过JavaScript实现人物逼真行走的效果。该效果主要通过CSS动画实现,同时使用JavaScript控制CSS动画完成人物行走的过程。 步骤 1. 准备人物图片 首先,我们需要准备好用于展示人物行走的图片。这些图片可以是人物行走各个姿势的连续帧,例如人物从…

    JavaScript 2023年5月28日
    00
  • js实现的万能flv网页播放器代码

    关于“js实现的万能flv网页播放器代码”的攻略,可以分为以下几个步骤: 1. 准备工作 在开始编写代码之前,我们需要准备以下三个必备元素:flv.js库、video.js库、以及我们要播放的flv文件。 flv.js:是一个轻量级的HTTP-FLV播放器库,可以用于浏览器内嵌播放Flv视频文件,它是基于浏览器原生的Media Source Extensio…

    JavaScript 2023年5月28日
    00
  • Mybatis常用分页插件实现快速分页处理技巧

    Mybatis常用分页插件实现快速分页处理技巧 背景 在使用Mybatis作为应用程序的ORM框架时,我们通常需要实现对数据库表的快速分页查询。而Mybatis常用的分页插件可以帮助我们快速实现这个功能。 准备工作 在使用分页插件之前,我们需要先将其引入到项目中,并在Mybatis的配置文件中进行配置。 引入分页插件 在Maven项目中,我们可以在pom.x…

    JavaScript 2023年6月10日
    00
  • JavaScript 数组的进化与性能分析

    JavaScript 数组的进化与性能分析 简介 JavaScript 中的数组是一种常用的数据结构,用于存储一组有序的数据。在 JavaScript 数组的进化过程中,出现了多种不同的实现方式,每种实现方式都有其优缺点。本文将简要介绍 JavaScript 数组的进化历程,并根据不同实现方式对其性能进行分析和比较。 传统数组实现 最早的 JavaScrip…

    JavaScript 2023年5月27日
    00
  • 原生js实现查找/添加/删除/指定元素的class

    实现查找指定元素的class可以使用Element.classList属性,该属性是一个只读的类数组对象,可以返回元素的所有class列表。同时,该属性还包含了一些常用的方法,可以用于添加、删除、切换、是否存在等操作。 查找指定元素的class 为了查找指定元素的class,可以使用如下代码: let element = document.getElemen…

    JavaScript 2023年6月10日
    00
  • 利用JavaScript脚本实现滚屏效果的方法

    下面是实现滚屏效果的方法的完整攻略: 利用JavaScript脚本实现滚屏效果的方法 基本思路 我们可以通过监听鼠标或者触摸事件,根据移动的距离来控制页面滚动的位置,从而实现滚屏效果。具体的步骤如下: 监听鼠标或者触摸事件,获取开始移动时的位置和移动的距离。 根据移动的距离计算需要滚动的距离。 利用window.scrollTo()函数来滚动页面的位置。 处…

    JavaScript 2023年6月10日
    00
  • 用js实现用户注册功能

    下面是用JS实现用户注册功能的攻略,包括以下几个步骤: 1. 构建注册表单 首先,需要创建一个表单来让用户进行注册,表单中应该包括用户名、密码、邮箱等常见的注册信息,以及一个“提交”按钮。需要定义每个input的name属性,方便后续使用。示例代码如下: <form id="register-form"> <label …

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