【问题标题】:Where could `appendTo()` be usable with an `htmlString`?`appendTo()` 在哪里可以与`htmlString` 一起使用?
【发布时间】:2019-03-05 14:23:31
【问题描述】:

appendTo 的 API 文档列出了能够为目标选择 HTML 字符串的方法。

但是,这似乎没有用,因为该集合仍然包含原始元素,并且 HTML 字符串似乎没有被添加到 DOM 中的任何地方,我也没有看到可以使用它的情况。

var b = button.appendTo('<div>').appendTo('body');

b 是一个按钮,但它没有包裹在 div 或任何东西中。

你可以在http://jsfiddle.net/0dgLe5sj/看到这个

附加到 HTML 字符串(页面上尚不存在)在哪里有用?

【问题讨论】:

  • 不确定您到底想做什么,但如果是这样,您是否注意到您使用了一个带括号(标记)的 div &lt;div&gt; 和一个未标记的主体 body,它不应该是 &lt;body&gt;跨度>
  • 我想展示我认为&lt;div&gt; 的无用之处,即使附加到正文中——我的意思是成为一个选择器,因为我知道如果我这样做将完全没用最终没有添加到文档中——似乎&lt;div&gt; 无处出现并且似乎没有用。

标签: javascript jquery append


【解决方案1】:

appendTo() 返回被附加的项目。

所以你的代码是:

var btn = button.appendTo('<div>');
btn.appendTo('body');

如你所见,你将它移动到一个 div 中,然后立即将它移动到 body 中。所以当你最后看它时,它就在体内。

也许你的意思是:

var b = button.appendTo($('<div>').appendTo('body'));

这会将div 附加到正文,然后将 btn 附加到该 div。

更新小提琴:http://jsfiddle.net/0dgLe5sj/8/

或者,如果您想先添加到 div:

var b = button.appendTo("<div>");
b.parent().appendTo("body")

但如果将其组合成一行,则无法使用 .appendTo 将按钮返回到变量中,因为您将 div 添加到正文中,因此您将获得 div 或身体回来了。


要解决“这在哪里有用”:

能够创建 分离的 DOM 元素对于解析 HTML 字符串非常有用,也可以用于“批量”一些更改,而不会强制页面重绘。

将一个按钮移动到一个分离的 div 并返回到 body 没有太多意义,但它证明了原则。

【讨论】:

  • 好的,我明白了,你回答的后半部分回答了我的问题——我看到它确实有一些用于附加到 HTML 字符串。但是让我感到困惑的是,您后一个示例中的用法似乎没有什么好处-我看不出这种样式在哪里有用,而第一个示例有明确的用途...
  • 更多的是关于你想要达到的目标。如果要在页面上的新 div 内移动按钮,只需使用第一个代码。如果您想首先在 detached div 中移动按钮,无论出于何种原因,请使用第二个代码。虽然您的问题询问这在哪里有用,但它也是基于不正确的技术解决方案提出的,因此我提供了技术解决方案的修复程序。 (“b 是一个按钮,但它没有被包裹在 div 中” - 现在它被包裹在 div 中,所以也许您现在可以回答自己的问题)。
  • 回复:你的后续行动,是的,我知道分离元素是多么有用,但是这里的 API 有点尴尬,因为它不会自动为你调用 parent() 所以您实际上可以对新创建的项目做一些事情。但是为了与其他参数类型相同,我明白为什么会这样,因为当您附加到选择器时,链可以方便地继续引用附加的项目。
  • 这就是append 的用途。 $("&lt;div/&gt;").append(button).appendTo("body");
  • 换句话说,你不认为html字符串对appendTo很有用... :-)
猜你喜欢
  • 2011-07-15
  • 1970-01-01
  • 2017-08-05
  • 1970-01-01
  • 1970-01-01
  • 2010-09-23
  • 2010-10-22
  • 1970-01-01
  • 2020-11-21
相关资源
最近更新 更多