【问题标题】:Use jQuery selectors to target and replace elements in a string containing HTML [duplicate]使用 jQuery 选择器来定位和替换包含 HTML 的字符串中的元素 [重复]
【发布时间】:2014-09-12 12:31:27
【问题描述】:

我有一个包含 HTML 的字符串,例如

var myString = "<div><p>testing</p></div>";

我需要定位 p 并将“测试”替换为其他内容,例如“Hello World”。我通常会使用

$("p").innerHTML = "Hello World";

但是,这是字符串的一部分,而不是 DOM 的一部分。如何使用 jQuery 的选择器系统从 HTML 字符串中进行选择?

【问题讨论】:

  • 这看起来不像是它的副本。他甚至说他没有使用 jQuery。
  • 问题 1:您是否拥有 DOM 或者您是否正在使用 DOM 做一些花哨的事情?问题 2:您是否反对“hacky”解决方案,例如在 DOM 中使用占位符并使用它?
  • @JonP 在我的情况下,我有一个模板,我将其作为文本拉入使用 AJAX 的变量中,我想将内容添加到该模板的一部分,然后再将其放入真实 DOM 中的模板持有者.我通常会使用 jQuery 来定位它,但它仍然在一个变量中。我可以将它添加到 DOM 中,然后在其中放置内容,但要定位到确切的内容会更加棘手,并且可能会有几毫秒没有内容。
  • 使用 jquery 的正确方法是var s = '&lt;li&gt;text&lt;/li&gt;'; $.parseHTML(s).find("p").text("Hello World")。不知道为什么这个问题被标记为一个不要求执行此操作的 jquery 方法的重复项

标签: javascript jquery html string dom


【解决方案1】:

您可以将任何 HTML 转换为可解析的 jQuery 对象。

jQuery - selectors on a html string

$('p', myString).text()

【讨论】:

  • 这允许我检索字符串但不能编辑它(如他的回答中提到的 meni181818 )。 +1,因为它很有用。
【解决方案2】:

请注意,您不能使用:

$("p", myString).text( "Hello World" );

因为不是“可编辑”DOM (isContentEditable: false)

【讨论】:

  • 您似乎被其他人否决了,因为这更像是评论而不是答案。我建议删除答案并将其作为评论发布。
猜你喜欢
  • 1970-01-01
  • 2011-10-29
  • 2015-12-22
  • 2021-03-02
  • 1970-01-01
  • 2015-10-02
  • 1970-01-01
  • 2021-11-26
  • 1970-01-01
相关资源
最近更新 更多