JavaScript 中的 child 和 childNode 有什么区别?

2024-03-04

我发现自己使用 JavaScript 并且遇到了childNodes and children特性。我想知道它们之间有什么区别。还有一个比另一个更受青睐吗?


Understand that .children https://dom.spec.whatwg.org/#ref-for-dom-parentnode-children is a property of an Element https://dom.spec.whatwg.org/#interface-element. 1 Only Elements have .children, and these children are all of type Element. 2

However, .childNodes https://dom.spec.whatwg.org/#ref-for-dom-node-childnodes is a property of Node https://dom.spec.whatwg.org/#interface-node. .childNodes can contain any node. 3

一个具体的例子是:

let el = document.createElement("div");
el.textContent = "foo";

el.childNodes.length === 1; // Contains a Text node child.
el.children.length === 0;   // No Element children.

大多数时候,您想要使用.children因为通常你不想循环Text https://dom.spec.whatwg.org/#interface-text or Comment https://dom.spec.whatwg.org/#interface-commentDOM 操作中的节点。

If you do want to manipulate Text nodes, you probably want .textContent https://dom.spec.whatwg.org/#ref-for-dom-node-textcontent instead. 4


1. Technically, it is an attribute of ParentNode https://dom.spec.whatwg.org/#interface-parentnode, a mixin included by Element.
2. They are all elements because .children is a HTMLCollection https://dom.spec.whatwg.org/#interface-htmlcollection, which can only contain elements.
3. Similarly, .childNodes can hold any node because it is a NodeList https://dom.spec.whatwg.org/#interface-nodelist.
4. Or .innerText https://developer.mozilla.org/en-US/docs/Web/API/HTMLElement/innerText. See the differences here https://stackoverflow.com/questions/35213147/difference-between-textcontent-vs-innertext or here https://developer.mozilla.org/en-US/docs/Web/API/Node/textContent#Differences_from_innerText.

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

JavaScript 中的 child 和 childNode 有什么区别? 的相关文章

随机推荐

  • Java:如何在抽象类中引用子类的静态变量?

    我明白了 感谢这个问题 https stackoverflow com questions 4898736 java static field in abstract class 在抽象类中声明的静态字段的值在所有子类中都是相同的 上述问题
  • 为什么 AVPlayer 在同一个会话中询问多个联合范围?

    我想知道为什么 AVPlayer 会问 请求中的联合范围 例子 1 我们有良好的无线网络连接 2 轨道总长度 1000000 AVPlayer 首先会询问bytes 0 1 没关系 它只是 ping 轨道的可用性 但之后它会问bytes 0
  • 相当于已弃用的 ifNotGranted 属性

    如果用户没有特定角色 我想阻止图像具有链接 例如
  • 有没有办法将变量从 ReactJS 传递到 CSS 样式表?

    我正在编写一个带有可变数量组件的滚动行情 所以我需要它来改变多远translate3d根据组件的数量移动它 我能想到的唯一方法就是以某种方式向它传递一个数字JSX文件 但我找不到办法做到这一点 有什么办法可以通过CSS一个变量 或者其他一些
  • WPF 清除 UserControl 的子级

    我正在 WPF 中创建一个 UserControl 并且 UserControl 的工作原理是当用户将鼠标移动到该控件上时 它的子控件应该被删除 但我似乎没有找到 Children 属性或类似的东西 XAML 在这里
  • Flutter 应用程序运行无法在 null 对象上调用方法 toInteger()

    我是颤振新手 我刚刚在 GitHub 上克隆了一个我必须处理的项目 因此 首先在我的 android studio 中运行该项目会给我带来以下错误 失败 构建失败并出现异常 在哪里 构建文件 C Users 19ngu AndroidStu
  • Mac OS X 支持 WPF 吗?

    我制作了一个 WPF 应用程序 我想知道 Mac OS X 是否支持它 Silverlight WPF 应用程序可以在 Mac 上运行 但否则您需要使用 Parallels 或其他虚拟机来运行 Windows 副本 我怀疑 Mono 已经发
  • 使用 Graphs.jl 在 Julia 中创建简单的图形对象

    我开始研究图论 我计划将其用于机器学习和 或贝叶斯推理 我想在 Julia 中编码 并找到了包Graphs http julia readthedocs org en latest packages packagelist graphs g
  • 如何在 sqlalchemy 中提交之前应用列默认值

    我有一个声明性基础模型 class User Base id Column Integer primary key True money Column Integer default 100 然后我跑 gt gt gt u User gt
  • 在java中创建线程在后台运行

    我想从我的主 java 程序中生成一个 Java 线程 并且该线程应该单独执行 而不会干扰主程序 应该是这样的 用户启动的主程序 做一些业务工作 应该创建一个可以处理后台进程的新线程 一旦创建了线程 主程序就不应该等到生成的线程完成 其实应
  • 在批处理文件中查找/替换文本时如何处理&符号?

    我有以下批处理文件来查找并删除文本文件中的字符串 文本文件将采用以下格式 079754 Billing Business Adv E MyDirectory 079754 35931 Billing Business Adv pdf Com
  • 如何实现虚拟静态属性?

    据我所知C 不支持虚拟静态属性 如何实现这样的行为C 我想实现基类的所有派生类都必须重写静态属性 获取派生类型 我想访问一个名为的静态属性Identifier Type t typeof DerivedClass var identifie
  • OpenGL 上下文丢失后如何重新加载 libgdx 非托管纹理

    我正在通过网络下载图像 并使用以下命令将它们作为图像演员添加到我的 libgdx UI 中 Pixmap pm new Pixmap data 0 data length Texture t new Texture pm TextureRe
  • FirebaseRecyclerPagingAdapter - 按日期排序列表

    在我的应用程序中 我想显示保存在实时数据库中的新闻列表 每个新闻项目都有一个以毫秒为单位的时间戳 以指示新闻的日期 我想首先使用 FirebaseRecyclerPagingAdapter 在 RecyclerView 上显示最新新闻 这个
  • 合并两个图并在 R igraph 中添加边权重

    我试图将两个图与相同的节点组合起来 但这样新的图边权重是两个原始图的总和 但当然希望解决方案扩展到 N 个图 g1 lt graph empty directed FALSE vertices letters 1 2 g1 lt g1 ed
  • 在 asp.net mvc 中单击按钮动态添加控件

    我正在创建一个 asp net MVC 应用程序 我想在其中提供动态添加控件的功能 我有一个表单 其中有两个用于名字和姓氏的文本框 它们用作单个控件 现在用户可以添加任意数量的这组控件 我可以使用 java 脚本在页面上添加这些控件 但我不
  • flutter :不支持的操作:无法添加到不可修改的列表

    我在 StatelessWidget 中有一个 ListView 它有项目 每个项目都包含一个复选框 当有人检查某个项目时 我希望 ListView 将其作为参数发送到另一个页面 但是当我这样做时 它给了我这个错误 I flutter 70
  • WebLogic“超出规定的内容长度”错误

    我有一个 Servlet 过滤器 它在 WebLogic 10 0 中生成 超出规定的内容长度 错误 如果有任何解决此问题的建议 我将不胜感激 详情如下 servlet 过滤器调整图像大小 将 FileInputStream 的内容 从磁盘
  • 如何使用 JGit 检查 Git 克隆是否已完成

    我学习 git 并使用 JGit 从 java 代码访问 Git 存储库 Git 默认情况下不允许克隆到非空目录 我们如何确定本地计算机中的特定 git 存储库已经完成了 git 克隆 以便我们随后只能执行 Git pull 操作 目前我正
  • JavaScript 中的 child 和 childNode 有什么区别?

    我发现自己使用 JavaScript 并且遇到了childNodes and children特性 我想知道它们之间有什么区别 还有一个比另一个更受青睐吗 Understand that children https dom spec wh