jQuery の $ 関数はセレクタによる絞り込み、HTML 生成、ready イベントコールバックの3つのケースに使われますが、開発者がセレクタとして想定したものが HTML 生成として解釈され、XSS を引き起こすことがあります。次のコードは HTML と解釈され、error イベントハンドラに指定された alert が実行されます。 $("#<img src=/ onerror=alert(1)>"); 防衛策として jQuery 1.9 では $ 関数に渡すことのできる HTML に見える文字列の制約を厳しくするため、従来は認識できた文字列が認識できなくなる場合の回避策および、特に単独の要素を生成したり、外部のデータから文字列を生成する場合のために $.parseHTML を使うことをおすすめするとリリース記事に書いてあります。 .parseHTML メソッドの実装を見ると戻り値が