问题标签 [dom]

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 投票
3 回答
29006 浏览

php - 确定 DOMElement 的父节点

我正在将用于 YouTube 视频评论的 C# 代码翻译成 PHP。为了正确嵌套评论回复,我需要重新排列 XML 节点。在 PHP 中,我使用与 C# XmlDocument 密切对应的 DOMDocument 和 DOMXPath。我的翻译已经走得很远了,但现在我被困在获取 DOMElement 的父节点上。DOMElement 没有 parent_node() 属性,只有 DOMNode 提供该属性。

在确定评论是对基于链接元素中字符串“in-reply-to”的先前评论的回复后,我需要获取其父节点以便将其嵌套在它所回复的评论下方:

0 投票
6 回答
8696 浏览

javascript - 使用 cloneNode(true) 后如何维护正确的 Javascript 事件

我有一个包含多行输入的表单元素。将每一行视为我想在我的 Web 应用程序中创建的新对象的属性。而且,我希望能够在一个 HTTP POST 中创建多个新对象。我正在使用 Javascript 的内置 cloneNode(true) 方法来克隆每一行。问题是每个输入行还有一个附加到其 onclick 事件的删除链接:

单击克隆的输入行的删除链接时,它还会删除从同一 dom 对象克隆的任何输入行。在上述 DOM 元素上使用 cloneNode(true) 后,是否可以将“this”对象重新绑定到正确的锚标记?

0 投票
2 回答
245 浏览

internet-explorer - 打印 DOM 更改

我想要做的是更改表格单元格的背景颜色 <td> 然后当用户去打印页面时,现在显示更改。

我目前正在使用不显眼的脚本在一系列单元格上运行以下命令:

这适用于 IE 和 FF 的屏幕,但是,当您转到打印预览时,背景颜色会丢失。

难道我做错了什么?

0 投票
3 回答
368 浏览

xml - DOM splitText 和 normalize 是否应该组合以提供身份?

昨天我卷入了关于 DOM 实现怪癖的讨论,引发了一个关于 Text.splitText 和 Element.normalise 行为以及它们应该如何表现的有趣问题。

DOM Level 1 Core中,Text.splitText 被定义为...

在指定的偏移量处将此 Text 节点拆分为两个 Text 节点,将它们作为兄弟节点保留在树中。然后,该节点仅包含直到偏移点的所有内容。并且作为该节点的下一个兄弟插入的新文本节点包含偏移点处和之后的所有内容。

标准化是...

将所有 Text 节点放在此 Element 下的子树的全部深度中,形成“正常”形式,其中只有标记(例如,标签、注释、处理指令、CDATA 部分和实体引用)分隔 Text 节点,即有没有相邻的文本节点。这可用于确保文档的 DOM 视图与保存和重新加载时相同,并且在要使用依赖于特定文档树结构的操作(例如 XPointer 查找)时很有用。

因此,如果我采用 textNode 中引用的包含“Hello World”的文本节点,然后执行

textNode 现在有内容“Hello”,以及一个包含“World”的新兄弟

如果我那时

什么是文本节点?规范没有明确说明 textNode 必须仍然是其先前父节点的子节点,只是更新为包含所有相邻的文本节点(然后将其删除)。删除所有相邻的文本节点似乎是一种一致的行为,然后用值的连接重新创建一个新节点,让 textNode 指向不再是树的一部分的东西。或者,我们可以以与 splitText 相同的方式更新 textNode,因此它保留它的树位置,并获取一个新值。

行为的选择确实完全不同,我找不到关于哪个是正确的澄清,或者这只是规范中的疏忽(似乎在第 2 级或第 3 级中没有澄清)。那里的任何 DOM/XML 专家都可以提供一些启示吗?

0 投票
2 回答
156 浏览

html - 如何将 XHTML 缩写为任意数量的单词?

您将如何以编程方式缩写XHTML为任意数量的单词而不留下未封闭或损坏的标签?

IE

缩写为 25 个单词将是:

0 投票
4 回答
3765 浏览

javascript - Firefox 与 IE:innerHTML 处理

经过数小时的调试,在我看来,在 FireFox 中,DOM 的 innerHTML 反映了标记中的实际内容,但在 IE 中,innerHTML 反映了标记中的内容以及用户或动态所做的任何更改(即通过 Javascript )。

有没有其他人发现这是真的?有什么有趣的解决方法可以确保两者的行为方式相同?

0 投票
9 回答
7189 浏览

javascript - 我应该使用 window.onload 还是脚本块?

我有一个 javascript 函数,可以在调用 DOM 时对其进行操作(添加 CSS 类等)。当用户更改表单中的某些值时调用它。当文档第一次加载时,我想调用这个函数来准备初始状态(在这种情况下,这比将 DOM 从服务器端设置为正确的初始状态更简单)。

使用 window.onload 来执行此功能还是在我需要修改的 DOM 元素之后有一个脚本块更好?无论哪种情况,为什么它更好?

例如:

我应该通过以下方式调用它:

或者:

前者似乎是标准的做法,但后者似乎一样好,也许更好,因为它会在脚本被击中时立即更新元素,只要它放在元素之后,我看不出有什么问题。

有什么想法吗?一个版本真的比另一个更好吗?

0 投票
6 回答
1469 浏览

java - Java 对象分配开销

我正在用 Java 编写一个不可变的 DOM 树,以简化来自多个线程的访问。*

但是,它确实需要尽可能快地支持插入和更新。而且由于它是不可变的,如果我对树的第 N 级上的节点进行更改,我需要分配至少 N 个新节点才能返回新树。

我的问题是,每次修改树时预先分配节点而不是创建新节点会更快吗?这将相当容易 - 保留一个包含数百个未使用节点的池,并从池中拉出一个,而不是在需要修改操作时创建一个。当没有其他事情发生时,我可以补充节点池。(如果不是很明显,在这个应用程序中执行时间将比堆空间更宝贵)

这样做值得吗?还有其他加快速度的技巧吗?

或者,有人知道不可变的 DOM 库是否已经存在吗?我搜索了,但找不到任何东西。

*注意:对于那些不熟悉不变性概念的人来说,它基本上意味着在对更改它的对象的任何操作上,该方法返回一个具有更改的对象的副本,而不是更改的对象目的。因此,如果另一个线程仍在读取对象,它将继续愉快地在“旧”版本上运行,而不知道已经进行了更改,而不是可怕地崩溃。见http://www.javapractices.com/topic/TopicAction.do?Id=29

0 投票
1 回答
24547 浏览

javascript - 如何以跨浏览器的方式使用 JavaScript 将 DOM 序列化为 XML 文本?

我有一个 XML 对象(使用XMLHTTPRequest's加载responseXML)。我已经修改了对象(使用 jQuery)并希望将其作为文本存储在字符串中。

在 Firefox 等人中显然有一种简单的方法可以做到这一点:

(来自罗塞塔代码

但是如何在IE6 和其他浏览器中做到这一点(当然,没有破坏 Firefox)?

0 投票
3 回答
1226 浏览

asp.net - Microsoft ASP.NET Ajax 是否会导致 DOM 对象泄漏?

我们一直在使用“Drip”来尝试确定为什么其中包含 UpdatePanel 的页面往往会使用大量客户端内存。对于一个定期回发的页面,我们看到 Drip 检测到 0 个泄漏。然而,当我们添加一个更新面板时,更新面板内的每个 DOM 对象都会出现泄漏(根据 Drip)。

我不确定 Drip 是否足够可靠以报告这类事情 - 报告的泄漏似乎表明 Drip 正在稍微修改页面。

有人对这个有经验么?我应该恐慌并停止使用 Microsoft Ajax 吗?我并没有怀疑微软,但对我来说它可能会这么糟糕似乎很可疑。

此外,如果您知道比 Drip 更好的工具,那也会有所帮助。