问题标签 [documentfragment]
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.
java - 如何使用 Java 标准 DOM API 解析 DocumentFragment
这就是我在 Java 中解析格式良好的 XML 文档的方法:
文本示例如下:
如何解析 DocumentFragment?例如,这个:
注意:如果可能的话,我想使用org.w3c.dom
而不是其他库/技术。
javascript - 如何在不插入 DOM 的情况下对文本字符串使用 jQuery 选择器/find()?
我有一个文本字符串,我正在尝试使用 jQuery 选择跨度。我想在不向dom添加元素的情况下获取跨度——如果可能的话?
在阅读了 jquery 文档后,我假设我可以通过将字符串包装在 jquery 选择器标签中来创建片段,然后使用 .find() 来查找我想要的元素。
我有与此类似的代码,但从最后一行的外观来看,很明显没有选择跨度;任何帮助将不胜感激:
谢谢。
javascript - 结合 documentfragment 和 replacechild 以最小化回流
我正在制作一个不使用画布的 javascript 游戏,并且我希望屏幕每个周期只重排一次,以提高速度。有没有办法让 documentFragment 替换命名元素?
编辑: javascript 指南建议 replaceChild( ) 可以与 documentFragment 一起使用,但该示例似乎暗示了多次重排:
javascript - 如何跨 IE/FF 向文档片段添加 CSS 规则?
我正在尝试创建一个文档片段并为其设置样式,但是遇到了很多困难。讽刺的是,IE 不是我的问题!
我有这个:
...在 IE7/8/9 中提示“红色”,但在 FF3.0/4/10 中提示“rgb(0,0,0)”。而且,是的,我需要知道应用了哪些样式,所以我需要从 FF 中的 getComputedStyle 中读取(或使用其他方法,只要它是可靠的)。
我究竟做错了什么?这可能吗?(我想/希望如此......)
我尝试了很多东西——比如“newDom.styleSheets”,它存在于 IE 中但不存在于 FF 中——但无济于事。
请帮忙 - 谢谢!:D
javascript - 将任意 HTML 插入 DocumentFragment
我知道最近讨论了添加innerHTML
到文档片段,并希望看到包含在 DOM 标准中。但是,在此期间您应该使用什么解决方法?
也就是说,取
我想要div
的内部和span
内部frag
,带有一个简单的单线。
没有循环的奖励积分。允许使用 jQuery,但我已经尝试过$(html).appendTo(frag)
;frag
之后仍然是空的。
jquery - JQuery 刚刚创建的空 div 没有文档片段作为父级
在使用 jQuery 中创建新的 html 节点时
在附加之前,它不会成为 DOM 的一部分。但是,这并不意味着该节点没有父节点。
如果创建的节点是空的,例如:
您可以检查父级:
看到你得到
结果。DocumentFragment
是一些类似于 的对象document
,但不是 DOM 树的一部分。
现在奇怪的事情来了。当您创建一个空节点时,例如
并尝试检查其内容
令人惊讶的是你得到
我无法理解这种行为,并且在 jQuery 文档中一无所获。我在尝试调试为什么 javascriptMVC mxui 模态在空 div 上失败时发现了它。
我已经在 Chromium 和 Opera 中测试过这种行为,所以它似乎不是与浏览器相关的问题。
有人对此有解释吗?
javascript - DocumentFragment 中不允许的某些元素?
我想使用 DocumentFragment 和 querySelector 来制作和修改 DocumentFragments。我正在使用将任意 HTML 插入 DocumentFragment中的一些代码从 HTML 字符串创建片段:
它有效:
但是,如果我使用<html>
or之类的元素<body>
,它会失败:
Chrome 和 Firefox 中的行为是相同的。
javascript - 为高级模板在屏幕外渲染 HTML(和 CSS)
我正在为内部应用程序构建一个基于 Javascript 的客户端模板引擎。它从服务器加载基于 HTML/CSS 的模板,并将它们与基于 HTML 的内容(P、EM 等)相结合
模板基本上具有固定大小的区域(通过 CSS 定义),内容应该适合这些区域 - 如果内容不适合这些区域/框,则其余部分将转到另一个这样的内容框,依此类推。
这张图片有望让我更容易理解我的意思:
。
想象一下整个事情是 1 个模板,其中的内容应该适合蓝色框 - 它显然不适合第一个蓝色框,因此 3 绿色块将附加到第二个框,等等。
请记住,蓝色框的大小、位置(和数量)可能因模板而异。内容也是如此(它可以是小文本或大文本 - 它可以是纯文本或 H1、P、EM 等格式。所以一切都是变量。文本大小也由模板通过CSS(所以不是固定值)。
所以无论如何,经过一些实验,我让它工作了,但现在我试图优化整个事情以更快。我在应用程序启动时预处理了数十个模板,因此初始化需要一段时间。
现在我们来回答我的问题——要渲染基于 HTML/CSS 的模板(并知道内容框、字体等的大小)以将它们与内容结合起来,模板必须具有布局并插入到 DOM 中。这当然非常昂贵 - 所以我想知道是否有任何方法可以在屏幕外执行此操作?没有将它们呈现给浏览器?
正在查看 documentFragments,虽然他们确实在屏幕外组装 DOM - 他们没有布局。我的意思是,如果你创建一个 documentFragment,在其中插入一个 DIV,并通过 CSS 说 div 应该是 150px 宽 - 它会记住它应该是 150px 宽,但在你插入之前它不会是 150px 宽分片成 DOM。
xslt - 如何选择 xpath 返回类型?
我有 xpath 查询:
此查询不会将匹配节点序列作为序列本身返回,而是将它们作为单个#documentfragment 的子节点返回。即使没有元素满足此查询,$fbids 仍设置为空的#documentfragment。
这搞砸了我的代码,而下面的循环不是每个匹配的元素迭代一次,而是为#documentfragment 运行一次,仅此而已。如何强制它返回一个不错的 element()* 类型?
谢谢!
javascript - forEach 只执行数组的最后一个元素
这是我的代码:
这里是该函数的参数:
此代码应返回一个文档片段,其中包含var Fragment
. 如果你看,JSON 是基于 atagName
和childNode
元素的;因为每个对象都依赖于一个tagName
,所以函数返回一个同名的新元素。
但是这里出了点问题,该函数只返回第二个节点Fragment
:
这等于:
但是,第一个节点发生了什么?