【问题标题】:Transforming html (text) to jQuery object : lost value将 html(文本)转换为 jQuery 对象:失去价值
【发布时间】:2018-02-27 18:19:15
【问题描述】:

将包含带有外部文本的空范围的 html 转换为 jQuery 对象时,我丢失了文本。我可以用一个简单的例子来说明这一点:

var test = "<span></span> someText";
var jq = $(test);
console.log(jq.prop('outerHTML'));

这将只记录 span,没有 someText(丢失)。

您能告诉我如何避免这种情况吗? 谢谢。

【问题讨论】:

  • Also outerHTML isn't a prop 是的,它是:jsfiddle.net/ydwd6kcm
  • 我的立场是正确的,我认为道具我们是为了真正的虚假价值
  • 不,它们适用于 jQuery 对象中 Element 的任何属性
  • 那部分是真的 :) @gospodin 您能否提供更多关于您如何使用该字符串的信息。如果可能的话,最好避免这种情况。
  • 这个字符串是我从外部插件(在我的应用程序之外)获得的东西,不是我在构建它,我不应该改变它。我只想将它作为 jQuery 对象进行操作,而不会丢失初始 html 中的任何数据。

标签: javascript jquery


【解决方案1】:

它非常笨重且令人不快,但你可以这样解析它

var test = "<span></span> spanValue";
//turn it into VALID html and parse it.
var jq = $($.parseHTML(test));
console.log(jq.text());
&lt;script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"&gt;&lt;/script&gt;

仅供参考parseHTML 需要 jquery 1.8+

【讨论】:

  • 不是一个坏主意,但由于所需的结果是一个未修改的测试变量,我们不应该从中删除垃圾邮件。因此删除删除 span 的行并将日志行更改为 console.log(jq.prop('innerHTML'));会给我一个 jquery 对象中的初始测试值。我想知道是否有比 parsingHtml 更好的解决方案。谢谢。
  • 你想要这个的目的还不清楚。如果您只想要文本"&lt;span&gt;&lt;/span&gt; spanValue" 那么console.log(test); 会这样做吗?但我猜它还有更多的意义?
  • 你不需要附加&lt;p&gt;
猜你喜欢
  • 1970-01-01
  • 2022-07-21
  • 2013-01-31
  • 2012-01-08
  • 2016-11-18
  • 1970-01-01
  • 2020-06-25
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多