$("#kenteken").blur(function(){
var sRegistrationNr = $(this).val();
var sChassisNumber = false;
$.ajax({
type: "GET",
url: "/activeContent/warrantyClaim/ajax-xml-response.php",
data: "return=auto&kenteken="+sRegistrationNr,
dataType: "xml",
success: function(xml) {
$(xml).find("xmlresponse").each(function(){
$(this).find("data").each(function(){
var sChassisNumber = $(this).find("chassisnummer").text();
});
});
}
});
alert(sChassisNumber);
});
这里是来自xml文件的数据(回复正常)
- <xmlresponse>
<result>GPZB89</result>
- <data>
<kenteken>GPZB89</kenteken>
- <chassisnummer>
- <![CDATA[ KNEFA2253N5000176
]]>
</chassisnummer>
</data>
</xmlresponse>
哪里出错了?
答案 0 :(得分:1)
安装firebug并详细查看返回的内容:
console.log(xml);
console.log($(xml)); //this will be clickable in console.
单击并浏览该对象。也许$(xml)已经是xmlresponse节点,你试图在其中找到另一个
答案 1 :(得分:1)
$.ajax({
...
success: function(xml) {
var sChassisNumber= $(this).find("chassisnummer").text();
}
});
alert(sChassisNumber);
您正在读取AJAX请求完成之前的回调函数的结果并重新调用该函数。
AJAX中的'A'代表异步。当脚本到达$.ajax()
调用后的行时,操作仍在进行中。这就是为什么你必须传递回调函数才能在它完成时执行。