点击时jQuery Ajax返回错误但是使用Document.Ready运行正常吗?

时间:2012-03-08 18:03:24

标签: jquery ajax xml-parsing

更新:似乎在IE中工作正常,但在Opera,FF或Chrome中没有...

我正在尝试使用javascript编写一种使用bind将数据导入sqlite的简单方法。我的点击功能无法处理我的简单ajax请求。我在这里很困惑......一如既往,这很好用:

$("#showDB").click(function(){alert("CLICKED!")});

这很好用:

$(document).ready(function () {
            $.ajax({
                type: 'GET',
                url: 'dv.xml',
                dataType: 'xml',
                success: parseXml,  
                error: function() {
                    alert('XML file not found.');

                }
            });
            function parseXml(xml) {
                    //alert('XML file found.');
                    $(xml).find('Employee').each(function(){
                        var name = $(this).find('name').text();
                        var email = $(this).find('email').val();
                        var jobtitle = $(this).find('jobtitle').val();
                        var address = $(this).find('address').val();
                        var workphone = $(this).find('workphone').val();
                        var homephone = $(this).find('homephone').val();
                        var cellphone = $(this).find('cellphone').val();
                        var fax = $(this).find('fax').val();
                        var contractor = $(this).find('contractor').val();

                        alert(name);

                    });
             }

      });

但是当我想点击以运行我的ajax请求时,它会返回我的错误警告“找不到XML文件。”

 $("#showDB").click(function(){
        $.ajax({
            type: 'GET',
            url: 'dv.xml',
            dataType: 'xml',
            success: parseXml,  
            error: function() {
                alert('XML file not found.');

            }
        });
        function parseXml(xml) {
                //alert('XML file found.');
                $(xml).find('Employee').each(function(){
                    var name = $(this).find('name').text();
                    var email = $(this).find('email').val();
                    var jobtitle = $(this).find('jobtitle').val();
                    var address = $(this).find('address').val();
                    var workphone = $(this).find('workphone').val();
                    var homephone = $(this).find('homephone').val();
                    var cellphone = $(this).find('cellphone').val();
                    var fax = $(this).find('fax').val();
                    var contractor = $(this).find('contractor').val();

                    alert(name);

                });
         }

  });

任何人都知道为什么我无法点击xml?我错过了什么?

1 个答案:

答案 0 :(得分:1)

点击代码上的错误包围,请使用:

$("#showDB").click(function(){
    $.ajax({
        type: 'GET',
        url: 'dv.xml',
        dataType: 'xml',
        success: parseXml,  
        error: function() {
            alert('XML file not found.');

        }
    });
  }); // needed to close it

编辑:“doc”调用没有失败的原因是ajax和函数被封装在load annon函数中 - 但是你的onclick代码却缺少一些右括号