我有一个代码,用于从careerbuilders api中提取数据。在浏览器上测试该链接时效果很好,但是我似乎无法从中解析任何内容。小心告诉我哪里错了?
html代码:
<div class="main">
Companies:
</div>
jQuery代码:
$(document).ready(function () {
$.ajax({
type: "GET",
url: "http://api.careerbuilder.com/v1/jobsearch?DeveloperKey=WDHL4Z86PBQY29Z7ZQQS&Location=Canada",
dataType: "xml",
success: xmlParser(xml)
});
});
function xmlParser(xml) {
$(xml).find("JobSearchResult").each(function () {
$(".main").append(
$(this).find("Company").text()
);
});
}
这是一个jsfiddle实时示例:http://jsfiddle.net/Cc4SY/
最佳答案
在您的情况下,不会定义xml
。您必须将成功回调包装在另一个函数中,后者将依次调用您的xmlParser
函数。
您正在做的是调用xmlParser
函数,并将返回值分配为成功回调,这不是故意的。因此,您将其包装在另一个函数中,并从该函数调用xmlParser
,在这种情况下,xml响应将正确地传递给xmlParser
,并且可以解析它。
代码可能如下所示:
$(document).ready(function () {
$.ajax({
method: "GET",
url: "http://api.careerbuilder.com/v1/jobsearch?DeveloperKey=WDHL4Z86PBQY29Z7ZQQS&Location=Canada",
dataType: 'xml',
success: function (response) {
xmlParser(response);
}
});
});
function xmlParser(response){
var xml = $.parseXML(response);
$(xml).find("JobSearchResult").each(function () {
$(".main").append(
$(this).find("Company").text()
);
});
}