2

我正在使用 . 我一直在从这些字符串中剥离 html,如下所示:

var comb = $(qu1[i].title + qu1[i].content).text()

我遇到了这样的字符串问题:San Diego Zoo's Animal Bytes:,它返回语法错误。我不确定为什么 jquery 对这个字符串有问题。

知道我该如何处理吗?

4

1 回答 1

2

因为它不是选择器,并且较新版本的 jQuery(1.9+)不再解析不以<. 尝试:

var comb = $('<div>').append($.parseHTML(qu1[i].title + qu1[i].content)).text();

$.parseHTML在 jQuery 1.8+ 中可用并有助于防止 XSS(这不会剥离所有 JS,只有脚本标签。onevent保留属性)。不过,如果来源值得信赖,您可以直接附加 html。我更愿意站在更安全的一边。=]

基本上,代码会动态创建一个元素 ( div) 并附加干净解析的标记,然后检索其文本表示。我不能声称原创性,类似的方法显示在如何使用 jQuery 解码 HTML 实体?和许多其他线程。

由于没有保留对div元素及其包装 jQuery 对象的引用,因此 GC 将非常快地收集这些引用。

参考:

jQuery Core 1.9 升级指南 -jQuery(htmlString)对比jQuery(selectorString)

于 2013-04-14T19:18:59.360 回答