私はajaxコールを持っていますが、返されたページのヘッダーとフッターを削除するために#viewportの返されたページを解析しようとしています。 find()はdivを見つけることができません。jqueryはidでdivを見つけることができません
私の本来の機能:警告(データ)で
function(event) {
$.ajax({
type: this.method,
url: this.action,
data: $(this).serialize(),
datatype: "html",
success: function(data) {
alert(data);
var respHTML = $(data).find("#viewport");
alert(respHTML.length);
$("#contacts_sidebar").html(respHTML);
}
});
return false;
}
i "がtable.someclass" にセレクタを変更した場合、私は間違いなくそれを見つけるだろう、<div id="viewport">
が、alert(respHTML.length)
0が表示されます。を参照してください。 "head"や "body"などのセレクタも0を返します。
私はそれがB/C私は次の回避策を成功ハンドラを置き換えるが、間違いなく知っている:
success: function(data) {
var respHTML;
var d=$(data);
for (i=0; i<d.length; i++) {
if (d[i]["id"] === "viewport") {
respHTML = d[i]["innerHTML"];
break;
}
}
$("#contacts_sidebar").html(respHTML);
}
私は何かが足りないのですか?回避策は、ちょうど醜い作品。
ありがとうございます。
複数の要素に同じ「id」値を使用するという罪を犯さないでしょうか? – Pointy
IDを検索する前にDOMに要素を追加しましたか?それとも単純なHTMLですか? –
@Caspar Kleijne彼は暗黙のうちに返されたHTMLを '$(data)'と書いて文書の断片に追加しています – Pointy