ドキュメントに書いてあるけど、$() で DOM エレメントを作成するときの引数は、html。
タグの外側にテキストがあったときに、思っていたのとは違う結果になった。
単純な例。こういうテキストは、
var str = '山田 <span class="name">太郎</span>';
こうなった。
console.log( $(str) );
// -> [<span class="name">太郎</span>]
console.log( $(str).find('.name') );
// -> []
テキストすべてから要素を作りたかったので外側を html タグで囲んだ。
var htmlStr = '<p>' + str + '</p>';
console.log( $(htmlStr) );
// -> [<p>山田 <span class="name">太郎</span></p>]
console.log( $(htmlStr).find('.name') );
// -> [<span class="name">太郎</span>]