问题标签 [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.
javascript - 有没有办法在 documentFragment 中找到元素?
在将片段附加到文档之前如何获取“myId”?
javascript - dom 之外的节点选择和操作(jQuery 的诀窍是什么?)
嗨,我想在 dom 之外进行 dom 选择和操作。
目标是从 dom 构建我的小部件,并仅在准备好后将其插入 dom。
我的问题是文档片段不支持 getElementById。我也尝试过 createElement 和 cloneNode,但它也不起作用。
我正在尝试用普通的js来做到这一点。我习惯用 jQuery 来做这件事,它可以很好地处理它。我试图在 jQuery 源代码中找到诀窍,但到目前为止没有成功......
奥利维尔
javascript - documentFragment.cloneNode(true) 不克隆 jQuery 数据
我有一个包含几个子节点的 documentFragment,其中添加了一些 .data(),如下所示:
当我尝试将 documentFragment 附加到页面上的 div 时:
我可以很好地访问数据:
但是如果我用 cloneNode(true) 克隆节点,我就无法访问节点的数据。:(
有没有其他人这样做或知道解决方法?我想我可以将行的数据存储在 中jQuery.data('#some_random_parent_div', 'rows', [array of ids])
,但这有点违背了使数据立即/易于用于每一行的目的。
我还读到 jQuery 使用 documentFragments,但我不确定具体是如何使用的,或者使用什么方法。有没有人有更多的细节?
重新编辑:.clone(true)
variables - 如何在 XSLT 中创建不是文档片段的变量?
考虑以下 XSLT 2.0 模板
这个模板的输出是
第一行输出 1(而不是我最初预期的 3),因为var1
它是一个包含<elem>
子元素的文档片段。现在我的问题:
如何创建不包含文档片段的变量?我可以像我那样做var2
,只是省略了谓词。但也许有一种不使用第二个变量的方法。或者,作为替代方案:如何在过滤掉某些元素的同时将文档片段保留在变量中?
背景信息:我将在递归函数中使用变量内容,该函数检查第一个元素var1
是否符合某些条件。如果满足条件或元素列表为空,则返回一个值。否则它会调用自己并var1
删除第一个元素(就像我在 中所做的那样var2
)。当var1
用作包含文档片段的参数时,我的模板中的 XPath 表达式将不匹配。
jquery - jQuery:原始html的元素数组?
假设我有一个这样的数组:
我需要获取连接元素的标记。所以我需要将content
“转换为原始字符串:<p>...</p><p>...</p>
”。
这怎么能很容易做到呢?似乎框架中应该已经有一些东西可以做到这一点。
不知何故可能会转换content
为文档片段并调用.html()
文档片段来获取标记?
javascript - jquery clone() 用户文档片段是否在内部?
我正在动态地将元素插入到 dom 中,为此我使用以下步骤:(jquery)初始 dom 结构如下:
- 使用 jquery .clone() 克隆父 div
- 克隆子 div 并进行操作
- 附加到克隆的父级
- 对所有子数据执行此操作
(parentdiv original).replaceAll(clonedparent)
基本上我想以某种方式克隆父 div,以便它可以作为文档片段使用,并且不会在 dom 上发生附加并获得性能。
jQueryclone()
会通过表现得像 documentfragment 来提供性能优势吗?还是有更好的方法来做到这一点?我不想将每个子元素构造为 HTML 字符串,因为它们的结构非常复杂。
javascript - 文档片段
请看下面的代码。
在这种情况下,我是否使用变量 myDiv 引用了我刚刚插入到 documentFragement 中的 div?假设我继续并将这个 documentFragement 添加到实际的 DOM 中。我仍然可以使用这个“myDiv”变量访问 id="myId" 的 div 吗?
javascript - 将 Range 或 DocumentFragment 转换为字符串
有没有办法在 W3C 兼容的浏览器中获取 JavaScript 范围对象的 html 字符串?
例如,假设用户选择以下内容:Hello <b>World</b>
可以使用该方法将“Hello World”作为字符串获取Range.toString()
。(在 Firefox 中,也可以使用document的getSelection
方法。)
但我似乎无法找到获取内部 HTML 的方法。
经过一番搜索,我发现范围可以转换为DocumentFragment
对象。
但是DocumentFragments
没有innerHTML
属性(至少在 Firefox 中;没有尝试过 Webkit 或 Opera)。
这对我来说似乎很奇怪:很明显应该有一些方法可以访问选定的项目。
我意识到我可以创建一个documentFragment
,将文档片段附加到另一个元素,然后获取该innerHTML
元素的。
但是该方法会自动关闭我选择的区域内的所有打开标签。
除此之外,肯定有一个明显的“更好的方法”,而不是将它附加到 dom 只是为了将它作为一个字符串。
那么,如何获取 Range 或 DocFrag 的 html 字符串呢?
dom - 在 MooTools JavaScript 库中创建/包装 DocumentFragment
如何使用MooTools等效于以下纯 JavaScript 片段
特别是如DOM 2 Core中所述,在将片段附加到 DOM 后,原始变量x
变为空 DocumentFragment:
如果[要添加的节点]是 DocumentFragment 对象,则将文档片段的全部内容移动到该节点的子列表中
编辑 (2011-04-13 06:30 UTC):
我想要得到的东西既可以作为DOM 2 Core 中的DocumentFragment ,又具有来自 MooTools Core的Elements的所有不错的方法。
javascript - 根据具有元素 id 的数组重新排序元素布局
我需要执行以下任务:有两个“ul”元素包含一些具有唯一 ID 的“li”。
使用 getElementsOrder 函数,我实现了包含元素编号 id 的结果数组:
现在,当从不同排序的数组中读取数据时,我希望能够对li
两者中的元素进行重新ul
排序,即:
如何以最浏览器友好的方式做到这一点?使用document fragment
? 应该是什么步骤?我在 jsfiddle 上有示例: