- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
我正在构建一个非常基本的函数来比较 Node.js 中的两个 DOM,我打算不仅要检测差异,还要确定确切的差异。令人惊讶的是,当我使用两个相等的 DOM(使用 jsdom 重建)时,比较 Node 的 childNodes 在使用 childNodes 时返回 false,而在我使用 innerHTML 时返回 true。
const checkForUpdates = function(website) {
let oldDom = new JSDOM(website.storedPage.page);
oldDom = oldDom.window.document.querySelector('body');
let newDom = new JSDOM(website.newPage.page);
newDom = newDom.window.document.querySelector('body');
const startChecking1 = function(someDom, anotherDom) {
return someDom.childNodes === anotherDom.childNodes;
// This returns false
};
const startChecking2 = function(someDom, anotherDom) {
return someDom.innerHTML === anotherDom.innerHTML;
// This returns true
};
console.log(startChecking(oldDom, newDom));
};
就我的目的而言,使用 childNodes 并不是绝对必要的,也许它不适用于这种类型的条件语句,但我仍然感到惊讶的是,如果这些 DOM 完全相同,它会返回 true。即使我使用“==”而不是“===”,我也会得到 false。
感谢您的帮助!
最佳答案
调用.innerHTML
返回序列化内容,这是基本的字符串匹配。
尝试比较 .childNodes
是在尝试比较对象,这在 javascript 中不是直接比较。
关于javascript - 比较两个相等 Node 的childNodes返回false,比较它们的innerHTML返回true,为什么?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/46305590/
只有 JS,没有 Jquery。 如何获取容器的所有子节点,然后为每个子节点获取子节点? 我不想将 ID 添加到作为网格行子级的每个包装器,我尝试使用“this”或此索引进行定位。该脚本应该是动态的,
我有这个简单的html: text1 text2 text3
谁能解释为什么 ChildNodes.FindNode('') (1) 失败但 ChildNodes[''] (2) 成功? ==> 代码: const cNodeSOAPEnvelope =
我需要帮助来理解我成功使用的 dart 代码。 (详细信息:我用它来注入(inject)包含绑定(bind)到可变 CSS 类的 SVG 图形) 我可以在这里调用构造函数参数“注入(inject)依赖
现在,在 Angular 代码的子函数中的compileNodes函数中,有以下几行: } else if (childLinkFn) { childLinkFn(scope, node.chil
您好,我是编码新手,有一个通用问题,我到处查找但找不到解决方案。我正在学习 javascript 教程,并遇到了这一行特定的代码。子节点指出属性“backgroundColor”未定义,我不确定为什么
使用这个 HTML: 还有这个 JavaScript: var x = document.getElementById("child").childNodes; console.log(x.leng
First p element (index 1) Second p element (index 3) 试图理解为什么索引 0 是文本节点。 根据 w3schools 的这个例子,索引 0、2
场景 我想获取 div 的所有子节点并更改其颜色。代码: function myFunction() { var divv = document.getElementById("divv");
http://www.quirksmode.org/dom/domform.html 我正在尝试在我的项目中实现这个扩展表单功能。但是无法找到字段名称(控制台日志返回“未定义”),直到我将输入字段放在
// Some jQuery to load the HTML file $(function(){ $("#myDiv").load("./someHTMLfile.html"); }); va
我正在尝试使以下代码为每个子节点工作一次。该函数还按照逻辑删除节点,对于多个子节点,它似乎永远不会遍历到每个子节点。 //Deleting from child node va
下面的代码应该让我获得表中复选框旁边的列的值,但是,单击按钮后,我将得到: Cannot read property childNodes of null 注意:来自 firebase 的数据库,表中
我想在 JavaScript 中将 Element 的 childNode 转换为数组。 如何将 childNode 转换为数组?有什么好主意吗? 最佳答案 我用 _.toArray() 做到了这一点
我有以下代码,我正在尝试动态地从元素 supercontainer 中动态删除所有“容器”元素。由于 nodeList 处于事件状态,因此以下代码应删除 container1 以及 container
从下图中可以看出,childNodes 数组有 13 个项目。但显然“book”元素只有 6 个子节点。为什么这是不准确的? 最佳答案 因为 childNodes 返回所有子节点,包括文本节点(即使它
我正在做(强烈推荐)Javascript 教程 ( http://www.newthinktank.com/2015/09/learn-javascript-one-video/ ),其中一个解决方案
我现在正在学习 JavaScript,我正在编写函数来更改每个段落标记 和字体样式标记emphasis(em) 的样式和 bold(b) 位于 内 元素。这是我的程序。 Lorem ipsum d
我是 Ajax 新手。 我正在尝试解析 this document . 我已经了解了 readystatechange,它正在获取 XML。但是当涉及到子节点及其值时,我感到困惑。 这是一些代码。如果
给定一个像这样的简单结构: Text1 Text2 Text3 LinkText4 我正在尝试使用 Javascript 提取所有 Text1-4,不带任何子节点。 循环列 ... x = rows[
我是一名优秀的程序员,十分优秀!