问题标签 [dom-node]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票
1 回答
187 浏览

javascript - 如何检查一个元素是否是 JavaScript 中的流元素

当我将 a 插入divp元素中时,DOM 会将其更正为

对于一个figure元素也是如此。它不能是 的孩子p。所谓的元素只允许进入允许流元素的父元素。

如果节点是流元素还是允许元素作为子元素的元素,如何使用 JavaScript 检查?

更新 这与 CSS 无关。这不是关于样式,而是关于 DOM。Adiv可以将 adiv作为孩子,但 ap不能将 ap作为孩子。

0 投票
1 回答
864 浏览

php - 如何将 HTML 字符串转换为 DOMNode 以在 PHP 中使用 DOMNode::insertBefore?

在我的 PHP 项目中,我使用 DOMDocument 来获取如下视图:

页面对象的方法

在模板对象 ( $this->current_template) 中,我有一个write获取页面内容的方法。修改已经注入的 HTML 也很有用。

模板对象的方法

为了更方便,我想编写代码以插入为 HTML 字符串并将其转换为 DomNode 以使用 $parentNode->insertBefore()。我怎样才能做到这一点 ?

0 投票
1 回答
41 浏览

jquery - 如何使用 .on() 传递 2 个参数?

我正在尝试将 2 个参数传递给 ajax,但我不知道该怎么做。它可以通过id但不通过anotherId. 我已经查看了.on() 文档,但并没有真正帮助我。

HTML

JS

0 投票
1 回答
1272 浏览

javascript - html节点的“文本”子节点是什么?

我试图搜索但没有找到答案:

所以我知道当一个页面被传递给浏览器或被浏览器下载时,会生成一个页面的树结构表示,称为 DOM。然后可以使用 Javascript 来操作这棵树的节点(表示元素的对象)。

所以现在如果我打开 Chrome 的开发者控制台并执行命令:

我得到了我所期望的,即两个节点,即 DOCTYPE 和 html 节点

如果我现在为 html 分配一个变量,然后检查它的节点,如下所示:

奇怪的事情发生了:

我得到了预期的“头”节点,然后有一个我不知道它来自哪里的“文本”节点,最后是预期的“主体”节点。

我的问题是这个“文本”节点来自哪里?

在此处输入图像描述

0 投票
2 回答
34609 浏览

javascript - 如何在 Nodejs 中使用 document.getElementById()

我正在尝试使用nodejs从js文件中的html文件中按id获取元素。我收到错误“未定义文档 ID”,因为默认情况下节点不提供文档对象模型。

那么如何在 nodejs 中使用document.getElementById()呢?

谢谢 !

0 投票
0 回答
58 浏览

html - 比较不同的 DOM 节点,哪些节点的性能更高?

试图减少 DOM 节点的数量我对此进行了一些研究,但没有发现任何比较数字,比如使用两个 DOM 元素而不是两个伪元素更好还是使用 20 个字符的文本节点更好而不是 10 个字符的 DOM 元素(假设它包含比文本节点更多的额外参数(它们不是缓存还是什么?))?

目标是简化大型 DOM 树的工作(主要是一个表格,每个单元格中都有一些结构,总共大约 30000 个 DOM 元素)。

我已经阅读了关于伪元素的 W3 规范,但没有找到任何有用的信息。

那么是否有任何共同规则,还是只能通过基准测试才能发现?

我也看到了这个问题,但它并没有太大帮助,因为我的问题是关于比较不同的节点 - 应该首选哪个节点来提高性能?

是的,我知道这种cell-reusing方法,但它也取决于单元格的复杂性(在 IE11 中滚动滞后很多,不仅仅是一次渲染整个结构)。

0 投票
1 回答
10131 浏览

reactjs - 不变违规:参数似乎不是 ReactComponent

我需要找到一个组件的offsetLeft

在调试时,我得到了变量tesNo的值。之后我得到了这个错误:

考虑向树中添加错误边界以自​​定义错误处理行为。访问此站点以了解有关错误边界的更多信息。不变违规:参数似乎不是 ReactComponent

如何解决这个错误?

0 投票
1 回答
25 浏览

json - 我应该在组件之间传递 json 还是 dom-nodes?

我正在使用 useContext 和 setState 挂钩在我的网站上共享一系列音轨。我有一些播放列表组件可以将曲目添加/删除到全局播放列表以及音频元素的包装器,例如可以在当前播放完成时检索下一个曲目。

播放列表都使用相同的组件。每个 Track 基本上只是一个包含 id、title、url.. 等的<tr>with 。<td>我使用 json 生成这些。

现在我的问题是我应该在我的钩子中传递什么?因为我看到至少 3 个选项...我可以通过

  • 传递 track_id 似乎最有效,但是.. 但是每当我需要曲目数据时.. 例如,要获取 url 或渲染,我需要找到可以嵌套在我的 json 后端中任何位置的对象。

  • 传递 dom-node 似乎是错误的......但如果我想在其他地方呈现列表,它会很容易使用。

  • 如果你传递track json对象..我随时都有我需要的所有数据..但我需要将它附加到所有track dom节点..这似乎也不对..

选项1。track.json 对象

选项 #2。<tr>域节点

现在我显然想遵循最佳实践并尽可能高效..所以有人可以指出我正确的方向

0 投票
1 回答
1832 浏览

typescript - Typescript:TextNode 的类型

如果你写下面的代码:

您将在以下位置收到此错误e.data

TS2339:“ChildNode”类型上不存在属性“数据”。

而如果条件为真 ( e.nodeType === Node.TEXT_NODE) 则e除了常规ChildNode属性之外还有一些其他属性,例如datawholeText


我应该转换成什么类型​​(除了any)?

0 投票
2 回答
175 浏览

javascript - 如果两个 DOMString 在 JavaScript 中代表相同的 DOM 节点,最有效的方法就是比较它们

我使用 ReactJs 函数renderToStaticMarkup来创建 HTML 标记。标记位于 App 中的另一个位置,作为其他 DOM 节点的innerHTML属性。由于我想防止图像iframe重新渲染,我想进行比较,如果当前的innerHTML与它应该设置的不同。

出于某种原因,Reacts renderToStaticMarkup为图像创建 HTML 标记为:

但 DOM innerHTML的值为

所以基本上区别在于尾随/(但这不需要是经验法则)

我想知道确定这两个 DOMString 是否代表同一个 DOM 节点的最有效/最快的方法是什么。

1.字符串比较

替换/删除所有出现的/>

2. 解析/转换为 DOMNodes

这是更安全的方法,但也更昂贵。我将不得不使用类似的东西document.createRange().createContextualFragment(参见这篇文章),而不是使用该isEqualNode方法。

有人有更好的建议吗?