jquery读取xml不是函数

时间:2010-01-28 11:46:38

标签: jquery xml

显然我一定忽略了一些东西。这是我的脚本,下面是数据。

 $("#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>

哪里出错了?

2 个答案:

答案 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()调用后的行时,操作仍在进行中。这就是为什么你必须传递回调函数才能在它完成时执行。