怎样在外部函数里面调用ajax加载的数据?

在一个ajax函数里要访问另一个ajax创建的标签的属性值,请问实用什么方法?补充代码如下,
最后是要获取dl里面各个dd标签属性min-id 的值。

    wzBrand.creatOrder = function() {
            //获取商标细则数据
            $.ajax({
                type: 'get',
                url: URL,
                data: {},
                dataType: 'json',
                success: function(data) {
                    var recvdata = $.parseJSON(data); //get 2类

                    $.each(recvdata, function() {
                        var getChildData = this.TinyList; //拿到当前二级的子菜单;
                        $.each(getChildData, function() {
                            strDdText += "<dd class='hook'  max-id='" + maxID + "'  mid-id='" + midID + "' min-id='" + minID + "'  >" + minID + minName + "</dd>";
                        });
                        var temp = "<dl><dt>" + this.midtypeid + this.midtypename + "</dt> " + strDdText + "</dl>";
                        $('#child-body').append(temp); //填充二级栏数据
                    });
                }
            })
        }

        wzBrand.initRst = function() {
            //模拟数据
            var rst = {
                IDList: {
                    //请无视这么恶心的命名
                    "bigid": "12",
                    "bigname": "运输工具",
                    "child": [{
                        "midid": "1204",
                        "midname": "自行车、三轮车及其零部件(不包括轮胎)",
                        "child": [{
                            "tinyid": "120046",
                            "tinyname": "自行车撑脚架"
                        }]
                    }]
                }
            }

            $.ajax({
                type: 'get',
                url: URL,
                data: {},
                dataType: 'json',
                success: function(data) {
                    $.each($(rst.IDList), function() {
                        var childList = this.child;
                        $.each(childList, function() {
                            var childItem = this.child;
                            $.each(childItem, function() {
                                var thisID = this.tinyid;
                                var thatID = $('#child-body').find('dd').attr('min-id');
                                if (thisID === thatID) { // *** thatID is undefined***
                                    console.log(thatID);
                                    debugger;
                                }
                            })
                        })
                    })
                }
            })
        }
阅读 8.6k
4 个回答
$.get("url1",data,function(re){
  if(re=="success"){
  $("body").attr("name","lucy");
  getattr();//在这个ajax请求完成后,调用另一个ajax的请求,
}
})

//这个将被ajax调用的ajax请求,请用函数包装起来。
function getattr(){
$.get("url2",data,function(re){
  var name=$("body").attr("name");
if(name==re.name){
  alert("hi");
}
})
}

好像楼主觉得我写得不够明白,我补充解释一下。

传回调到另一个 Ajax 中。

(如果两个 Ajax 在逻辑上有顺序关系的话 -- 比如前一个 Ajax 创建标签,后一个 Ajax 对这个标签的属性值进行操作)

在第一个Ajax请求成功并完成DOM渲染后在另一个Ajax中获取DOM的属性值

把响应信息传递给一个全局变量,然后就可以用了吧

撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进