var currencySelhtm = "";
$.ajax({
    url: "/servlet/CurrencyAction.do",
    type: "post",
    dataType: "xml",
    data: "action=showall",
    success: function(xmlResult) {
        var $xml = $(xmlResult).find("Currency");
        if ($xml.length < 1) {
        } else {
            for (var m = 0; m < $xml.length; m++) {
                var Currency_Name = $xml.eq(m).attr("Currency_Name");
                var Currency_Signcode = $xml.eq(m).attr("Currency_Signcode");
                var Currency_ID = $xml.eq(m).attr("Currency_ID");
                currencySelhtm += '<option value="' + Currency_ID + '">' + Currency_Name+'</option>';
            }
                alert(currencySelhtm);
                //你要怎么使用这个currencySelhtm的方法放在这个回调函数中即可
        }
    },
    error: function() {
        currencySelhtm = "";
    }
}); 
result += "币种:<select name='tcurrencys' id='tcurrencys'><option value='-1'>---</option >" + currencySelhtm + "</select><br/><br/>";

解决方案 »

  1.   

    result的字符串拼接操作 作为回调函数传入success中。
    请先了解什么是 ajax异常操作,以及如何理解回调函数。
      

  2.   


    var currencySelhtm = "";
    $.ajax({
        url: "/servlet/CurrencyAction.do",
        type: "post",
        dataType: "xml",
        data: "action=showall",
        success: function(xmlResult) {
            var $xml = $(xmlResult).find("Currency");
            if ($xml.length < 1) {
            } else {
                for (var m = 0; m < $xml.length; m++) {
                    var Currency_Name = $xml.eq(m).attr("Currency_Name");
                    var Currency_Signcode = $xml.eq(m).attr("Currency_Signcode");
                    var Currency_ID = $xml.eq(m).attr("Currency_ID");
                    currencySelhtm += '<option value="' + Currency_ID + '">' + Currency_Name+'</option>';
     
                }
                result += "币种:<select name='tcurrencys' id='tcurrencys'><option value='-1'>---</option >" + currencySelhtm + "</select><br/><br/>";
                alert(currencySelhtm);

            }
        },
        error: function() {
            currencySelhtm = "";
        }
    });
    AJAX 的本意, 就是异步JavaScript和XML。 所以前面的事情刚开始做,不管有没有做完, 马上就会执行下一条语句。如果你想在提交之后才做某个事情, 两种解决方案:
    1. 写在 $.ajax 的回调函数之中。
    2. 将 $.ajax 设置为同步 async:false , 不过这样并不好, 会造成页面短时间无法操作。
      

  3.   

    var currencySelhtm = "";
    $.ajax({
        url: "/servlet/CurrencyAction.do",
        type: "post",
    async:false,///////加这句同步就行了
        dataType: "xml",
        data: "action=showall",
        success: function(xmlResult) {
            var $xml = $(xmlResult).find("Currency");
            if ($xml.length < 1) {
            } else {
                for (var m = 0; m < $xml.length; m++) {
                    var Currency_Name = $xml.eq(m).attr("Currency_Name");
                    var Currency_Signcode = $xml.eq(m).attr("Currency_Signcode");
                    var Currency_ID = $xml.eq(m).attr("Currency_ID");
                    currencySelhtm += '<option value="' + Currency_ID + '">' + Currency_Name+'</option>';
     
                }
            }
        },
        error: function() {
            currencySelhtm = "";
        }
    });
    alert(currencySelhtm);
     
    result += "币种:<select name='tcurrencys' id='tcurrencys'><option value='-1'>---</option >" + currencySelhtm + "</select><br/><br/>";