我使用代码打击保存html与数据库中的jquery一起使用并稍后使用...
$('div[read]').each(function(){
var kelas = $(this).attr('kelas');
$.post('admin.php',{kelas:kelas,id:id},function(sss){
alert(sss);
});
});
所以它必须从第一个div到最后一个权利?
但它不是!
这是html在运行每个之前用jquery制作的图像:
http://upbaz.ir/up/2013/12/3533.png
并且此图像来自运行后(每个)代码
http://upbaz.ir/up/2013/12/3534.png
所以它不是从第一个div而是从其他人那里得到的
我该如何申请? for each()从第一个div获得,然后从其他div到最后一个div
谢谢
答案 0 :(得分:1)
post()jquery函数是异步的。您应该将所有$('div [read]')对象发送到admin.php并在回显之前将结果排序。
答案 1 :(得分:1)
基于从问题中得出的很少。问题似乎是ajax响应没有按顺序返回。这是预期的AJAX代表异步 JavaScript和XML。
如果您需要强加一些订购,您可以通过多种方式进行订购。但是,看起来ajax响应中包含的数字对应于页面上的div。
请记住,问题非常模糊,因此答案可能不是OP想要的。
<强> For a Demonstration check out the Fiddle 强>
jQuery(document).ready(function ($) {
var divs = $('div[read]');
$(divs).each(function () {
var kelas = $(this).attr('kelas'),
id = $(this).attr("read");
postSimulator('admin.php', {
kelas: kelas,
id: id
}, process(this));
});
function process(div) {
return function (data) {
// based on the pictures in the question I assume the
// a number is returned
var ord = data.id;
$(div).append(ord);
};
}
function postSimulator(str, obj, cbFtn) {
var timeToWait = parseInt( Math.random() * 10000);
setTimeout(function () {
cbFtn(obj);
}, timeToWait);
}
});
使这项工作的诀窍在于process
功能。从函数返回的是一个关闭div
的函数,当收到ajax响应时,postSimulator调用它并将响应应用于正确的div。
答案 2 :(得分:0)
我解决了...
是的帖子是异步的...
所以我用以下代码发布一次:
var id = ss;
var kelas = new Array();
$('div[read]').each(function(){
kelas.push($(this).attr('kelas'));
})
$.post('admin.php',{id:id,kelas:kelas},function(){
alert('DONE');
})