1

我有一个 ajax 请求,通过获取 url 发送 vars 并获取 xml 节点。ajax 效果很好,实际上我可以在使用 firebug 调试时看到响应......问题是当我尝试通过 jquery 将节点数分配给 var 时。

这是功能:

function CargarTValores(){
try{
    $.ajax({
        url: 'f_func.php?f=g_tv&adm=1',
        data: {},
        success:function(result){
            alert("entro");
            var algo = 0;
            algo = $(result).find('error').length;
            if(algo>=1){
                alert(toString($(result).find('error').first().text()));
                }
        },
        error:function(){
            alert("Error inesperado.");
        }
    });
}catch(e){
    alert("algo paso");
}
}

我知道ajax的响应是这样的: <?xml version='1.0' encoding='utf-8'?><error>No existen Tipos de Valores en el sistema.</error>

所以我知道长度至少为 1,如果我将鼠标.length放在萤火虫上的属性上,它会显示“1”。

总而言之,我认为我的问题出在这条线上algo = $(result).find('error').length;

请告诉我做错了什么,谢谢你的时间;)

4

3 回答 3

1

在 ajax 调用中传递数据类型参数dataType: 'xml'

于 2013-08-09T21:21:54.330 回答
0

通过http://api.jquery.com/jQuery.parseXML/解析你的 html

例子:JSFiddle

   $.ajax({
        url: 'f_func.php?f=g_tv&adm=1',
        data: {},
        success:function(result){
            alert("entro");
            var algo = 0,
            xmlDoc = $.parseXML(result),
            $xml = $( xmlDoc ),
            error = $xml.find("error");

            algo = $(result).length;
            if(algo >= 1){
                alert(error);
             }
        },
        error:function(){
            alert("Error inesperado.");
        }
    });
于 2013-08-09T21:17:38.140 回答
0

你需要pareXML,这是一个例子(jsfiddle

xml = "<?xml version='1.0' encoding='utf-8'?><error>
        No existen Tipos de Valores en el sistema.</error>";

xmlDoc = $.parseXML( xml );

window.alert($('error:eq(0)', xmlDoc).text());
于 2013-08-09T21:22:08.327 回答