1

URLを取得して変数を送信し、xmlノードを取得するajaxリクエストがあります。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 であることはわかっており、.lengthfirebug のプロパティの上にマウスを置くと、「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 に答える