を使用して、API からさまざまな文字列を受信しています。次のように、これらの文字列から html を削除しています。
var comb = $(qu1[i].title + qu1[i].content).text()
次のような文字列で問題が発生しました: San Diego Zoo's Animal Bytes:
、構文エラーを返します。jquery がこの文字列に問題を抱えている理由がわかりません。
どうすればこれを処理できますか?
を使用して、API からさまざまな文字列を受信しています。次のように、これらの文字列から html を削除しています。
var comb = $(qu1[i].title + qu1[i].content).text()
次のような文字列で問題が発生しました: San Diego Zoo's Animal Bytes:
、構文エラーを返します。jquery がこの文字列に問題を抱えている理由がわかりません。
どうすればこれを処理できますか?
これはセレクターではないため、新しいバージョンの jQuery (1.9+) は で始まらない html 文字列を解析しなくなりました<
。試す:
var comb = $('<div>').append($.parseHTML(qu1[i].title + qu1[i].content)).text();
$.parseHTML
jQuery 1.8+ で利用可能で、XSS の防止に役立ちます (これはすべての JS を削除するのではなく、スクリプト タグのみを削除します。onevent
属性は保持されます)。ただし、ソースが信頼できる場合は、html を直接追加できます。私はより安全な側にいることを好みます。=]
基本的に、コードはそのdiv
場で要素 ( ) を作成し、きれいに解析されたマークアップを追加してから、そのテキスト プレゼンテーションを取得します。独自性を主張することはできませんが、同様のアプローチがHow to decode HTML entities using jQuery? に示されています。および他の多くのスレッド。
div
要素やそのラッパー jQuery オブジェクトへの参照は保持されないため、これらは GC によって非常に高速に収集されます。
参照:
jQuery Core 1.9 アップグレード ガイド -jQuery(htmlString)
対jQuery(selectorString)