在$ .ajax成功回調函數中返回的HTML不允許我將它放入jQuery包裝器中,並對其應用標準jQuery方法。爲什麼是這樣?例如,這提醒空:
dataType: "html",
success: function(myHTML) {
var $myHTML = $(myHTML);
alert($myHTML.html()); // returns null
}
我的目的是修改MYHTML使用jQuery方法(這就是爲什麼我需要把它放在jQuery的包裝),然後返回修改後的HTML(飽滿,包括<head>
,腳本等)作爲一個字符串。但我嘗試使用$(myHTML)的jQuery方法都不行。怎麼來的?
代碼的工作版本是在這裏:http://jsfiddle.net/supertrue/Uw5dc/
var getHTML = function (url){
$.ajax({
url: url,
dataType: "html",
success: function(myHTML) {
// view the returned HTML
alert('Successfully grabbed this HTML: \n\n' + myHTML);
// the opening <html> tag is missing (no idea why)
myHTML.replace('<head>', '<html><head>');
// put it in a jQuery wrapper
var $myHTML = $(myHTML);
// use jQuery to manipulate it
// $myHTML.find('script').remove(); // just an example
// then view the final html
alert('$myHTML.html(): \n\n' + $myHTML.html()); // doesn't work!
// that didn't work; try getting outerHTML
$myHTML = $('<div></div>').append(myHTML);
alert('$myHTML.html(): \n\n' + $myHTML.html()); // highly incomplete! missing scripts and <head>, <body> wrappers
}
});
}