好的,想通了。jQuery 在动态生成的 html 中遇到“html”和“body”标签时会默默地呕吐。我只需要更换或剥离这些标签,现在它可以按预期工作。
http://jsfiddle.net/pqyeM/13/
var response = "<html><head><title>test</title><style>body{font-size:.9em;}</style></head><body bgcolor=\"white\"><h1>hello</h1></body></html>";
// we have to remove/replace certain tags or jquery will vomit with unexpected results
var modifiedResponse = response.replace("<html>", "").replace("</html>", "").replace("<body", "<div id='content'").replace("</body>", "</div>");
var wrappedSet = $(modifiedResponse);
wrappedSet.filter("div[id='content']").appendTo("#output");