呼び出しから大量の HTML を返してい$.ajax
ます。PHP からの文字列には、先頭に 2 つの改行があります。
$data = "
<div>
<p>Here is some text</p>
</div>";
$.ajax
呼び出しは次のとおりです。
$('form#form_id').submit(function(e){
e.preventDefault();
$form = $(this);
$.ajax({
url: $form.attr('action'),
type: $form.attr('method'),
data: $form.serialize(),
dataType: 'html',
success: function(data) {
var $html = $($.parseHTML(data));
$html.appendTo('#container_id').hide().fadeIn(300);
}
});
});
.hide().fadeIn(300)
where it throws:を追加するまで、すべてが機能しますTypeError: 'undefined' is not an object (evaluating 'hooks.cur = fn') jquery.js:1925
。改行を削除すると機能します。$.parseHTML
jQueryが言うので、私はを使用しています:
文字列が HTML であることがわかっているが、HTML タグではない任意のテキストで始まる可能性がある場合は、マークアップを表す DOM ノードの配列を返す jQuery.parseHTML() に渡します。jQuery コレクションは、たとえば $($.parseHTML(htmlString)) から作成できます。
何が起こっているのか分かりますか?