NutzCN Logo
问答 ajax循环嵌套ajax
发布于 477天前 作者 lqyounger 480 次浏览 复制 上一个帖子 下一个帖子
标签:

大神,在ajax里面嵌套ajax,怎么解决同步问题,谢谢

$(function () {
    $.ajax({
        url: 'url1',
        type: "GET",
        async: false,
        dataType: "jsonp",
        success: function (data) {
            var json = $.parseJSON(data);
            for (var i = 0; i < json.length; i++) {
                var id = json[i].FEATUREID;
                var parentId = json[i].FEATUREPARENTID;
                var name = json[i].FEATURENAME;
                var type = json[i].FEATURETYPE;
                var sdex = json[i].SINDEX;
                var extent = json[i].FEATUREEXTENT;
                var levelnum = json[i].LEVELNUMBER;
                var sum = json[i].SUMMARY;


                $.ajax({
                    url: 'url2,
                    type: "GET",
                    dataType: "jsonp",
                    async: false,
            
                    success: function (data1) {
                        currentIndex++;
                        var json1 = $.parseJSON(data1);//转换为json对象
                        var a = json1;
                        if (json1.length > 0 && name == a[0].FeatureName) {
                            var link = a[0].Url;
                            $("#resourceList").append('<ul name="wl" id="myUL"><li style="float: left;width: 600px;padding: 5px;"><div style="background-color: Azure">'
                                + '<input style="width: 15px;height: 15px" type="checkbox" name="feature" value="feature[i]" class="pack"><span>'
                                
                                + '<span>' + '名字:' + name + '</span><br>' +
                                '<span>' + '类型:' + type + '</span><br>' +
                                '<span>' + 'sindex:' + sdex + '</span><br>' +
                                '<span>' + '扩展:' + extent + '</span><br>' +
                                '<span>' + '级别:' + levelnum + '</span><br>' +
                                '<span>' + 'sum:' + sum + '</span><br>' +
                                '<span>' + 'url:' + link + '</span><br>' +
                                '</div></li></ul>');
                           
                        }
                       
                    },
                });


               
           
            }
        },
    });
});



function changeAll() {
    var sall = document.getElementById("sall");//获取标题栏中的操作对象
    var seach = document.getElementsByName("feature");//获取内容栏的对象
    for (var i = 0; i < seach.length; i++) {
        if (sall.checked) {
            seach[i].checked = true;
        } else {
            seach[i].checked = false;
        }
    }
}

// 模糊查询
function myFunction() {
    debugger
    // 声明变量
    var input, filter, ul, li, div;
    input = document.getElementById('myInput');
    //toUpperCase()方法用于把字符串转换为大写。
    filter = input.value.toUpperCase();

    var li = $("ul[name='wl']")
    // 循环所有列表,查找匹配项
    for (i = 0; i < li.length; i++) {
        debugger;
        //document.getElementsByTagName("*")  获得所有的标签,用来遍历
        var div = li[i].getElementsByTagName("div")[0];
        //alert("dbc");
        var div1 = $(div)
        //eq() 方法将匹配元素集缩减值指定 index 上的一个。text()方法设置或返回被选元素的文本内容
        //indexOf() 方法可返回某个指定的字符串值在字符串中首次出现的位置。
        // indexOf() 方法对大小写敏感!如果要检索的字符串值没有出现,则该方法返回 -1
        if (div1.find("span").eq(0).text().toUpperCase().indexOf(filter) > -1) {
            li[i].style.display = "";
        } else {
            li[i].style.display = "none";
        }
    }
}




<body>
<span>特征列表</span><br>
<!--<input type="button" value="全选" onclick="checkall();">-->
<!--<input type="button" value="全不选" onclick="clearall();">-->
<!--<input type="checkbox" id="allChecks"  onclick="ckAll()" /> 全选/全不选-->
<input type="checkbox" id="sall" onchange="changeAll()">全选/全不选
<div>
    <input type="text" id="myInput" onkeyup="myFunction()" placeholder="搜索...">
    <div>
        <ul id="resourceList" style=" width: 1300px;overflow: hidden;zoom: 1; font-size: 12px;">
            <!--<li>kdkdkd</li>-->
            <!--<li>kdkdkdk</li>-->
        </ul>
    </div>
</div>
<button class="pack">向页面发送 HTTP POST 请求,并获得返回的结果</button>
</body>
5 回复

url2 里面有第一次ajax获取到的Id

我的目的是这样的,使用url1获取里面的相关属性数据以及id ,但是没有我想要的link服务地址,需要借助id循环解析各个链接,获取里面的链接

不懂,路过。。。

昨天下午已经解决,使用递归可以解决ajax异步问题

这是同步ajax范围

添加回复
请先登陆
回到顶部