我刚开始学习JQuery。我遇到了这个。我有两个不同的阵列' good'并且'糟糕'每个数组中都有一些消息。现在我试图在JQuery对话框中显示每个数组中的每个元素。我试图打开一个包含每个元素的对话框,并在一定时间后将其淡出。但我只显示最后一个元素。我尝试用延迟和淡出来改变时间,但是无法到达那里。 指出我正确的方向将不胜感激。 目前我只是从Good和Bad中获取每条消息,并在控制台和个人对话框中显示它。 我的代码是
function show_message(type,index) {
switch(type) {
case "good" :
jQuery("#good").children("#goody").each(function() {
var goods = jQuery(this).text();
console.log(goods);
jQuery(this).dialog().html(goods);
});
break;
case "bad" :
jQuery("#bad").children("#baddy").each(function() {
var bads = jQuery(this).text();
console.log(bads);
jQuery(this).dialog().html(bads);
});
break;
}
}
var ar = <? echo $json ?>;
jQuery.each(ar, function (key, value) {
if (key === 'good' && ar.success.length !== 0) {
var count = ar.good.length;
for (var m = 0; m < count; m++) {
jQuery("#good").prepend('<div id= "goody">' + ar.good[m] + '</div>');
show_message('good',m);
}
} else if (key === 'bad' && ar.bad.length !== 0) {
var counter = arr.bad.length;
for (var n = 0; n < counter; n++) {
jQuery("#bad").prepend('<div id="baddy">' + arr.error[n] + '</div>');
show_message('bad',n);
}
}
});
答案 0 :(得分:0)
似乎你必须改变这部分
var goods = jQuery(this).text();
对于每次迭代,它都会创建一个好的/坏的新变量并分配给它。所以你只分配了最后一个文本。
你可以尝试这个
function show_message(type,index) {
var goods=""; // Added variable here
var bads =""; // Added variable here
switch(type) {
case "good" :
jQuery("#good").children("#goody").each(function() {
goods+= jQuery(this).text(); //concatenating the string
console.log(goods);
jQuery(this).dialog().html(goods);
});
break;
case "bad" :
jQuery("#bad").children("#baddy").each(function() {
bads+= jQuery(this).text(); //concatenating the string
console.log(bads);
jQuery(this).dialog().html(bads);
});
break;
}
}