大神,在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>