我正在使用现代的jquery 1.5 ajax请求。到同一域的页面。 我正在尝试使用油脂猴和jquery改进内部网站点的行为。
var jqxhr = $.ajax("anotherpage-response.html")
.success(function(data) {alert("cmp"); console.log(data);})
.error(function() { alert("error"); })
.complete(function() { alert("complete"); });
它当前以字符串形式返回。任何想法我怎么能得到它作为一个dom像对象我可以使用jquery选择器进行返回???
我认为我是fileType: html
之类的东西,但它似乎不是ajax请求中的一个选项。也许我只需要正确阅读api ???
由于
答案 0 :(得分:5)
您应该阅读有关此主题的jquery文档:http://api.jquery.com/jQuery.ajax/ 您正在寻找的内容可能如下: dataType 。
$.ajax({
url: 'request.html',
succes: function(data){
.. do something here! ..
},
dataType: 'html'
});
我希望这会有所帮助
答案 1 :(得分:3)
无论你将以纯文本的形式返回一个字符串。
来自dataType上的jQuery文档:
“”html“:以纯文本形式返回HTML;在插入DOM时,将评估包含的脚本标记。”
您可以随时将明文转换为dom对象..
$.ajax({
url: 'request.html',
succes: function(data){
$(data) // This is now (kind of) a DOM object that you can use jQuery selectors on
},
dataType: 'html'
});
答案 2 :(得分:0)
在jQuery 1.4及更低版本中,您可以通过传递dataType
来指定内容类型。在更高版本中,jQuery会尝试为您确定内容类型。
尝试这样的事情:
$.ajax({
url: "anotherpage-response.html",
success: function(response, status, xhr){
var ct = xhr.getResponseHeader("content-type") || "";
if (ct.indexOf(‘html’) > -1) {
//handle html content
}
else if (ct.indexOf(‘json’) > -1) {
//handle json object
}
}
});