gpt4 book ai didi

javascript - 如何在 for 循环中使用 $.each 或替代方案

转载 作者:行者123 更新时间:2023-12-03 08:28:51 28 4
gpt4 key购买 nike

下面的代码(手动输入 ID)可以按需要工作。但我真的无法在生产中实现这一点,因为我不知道数组中的条目数。我注意到即使使用下面的代码,如果返回未定义或空值,它也不会显示整个结果。因此,我需要一个函数来迭代 globalStore.data 中的每个条目以及 div.morning、.afternoon 和 .evening 中的每个元素。

我不能简单地写如下,其中[i]代表for循环中的条目数;但这为什么行不通?是否因为 $.each 不能在 for 循环中使用。是否有其他方法可以在 div .morning、.afternoon 和 .evening 的每个元素中进行迭代?

 var arr = globalStore.data[i].morning;
var arr2 = globalStore.data[i].afternoon;
var arr3 = globalStore.data[i].evening;

$("div.evening_"+globalStore.data[i].UUID+" span").each(function(){if(arr_ev.indexOf($(this).attr("class")) > -1) {$(this).css("color","#26F525");}});

我还尝试在 for 循环中调用此函数:

colorMe(globalStore.data[i].morning, globalStore.data[i].UUID);

//该函数单独放置在for循环之外。

    function colorMe(param, param3)
{
console.log("DAY "+param);//this prints all the days unique to id correctly
console.log("user "+param3);//this prints all the unique id correctly

//But when it comes to using $.each again, it doesn't return anything.

var arr = param;
$("div.morning_"+param3+" span").each(function() {
if(arr.indexOf($(this).attr("class")) > -1) {

//$(this).css("color","#ff0000");
console.log("TEXT "+$(this).text());

}
});

}

//这有效

 $(function()
{

var globalStore = {};
globalStore.data = [];
var data;
$.when(
$.get('/search/show_all_tutors.php',function(data){globalStore.data = globalStore.data.concat(data);console.log(data)},"json")
).then(function() {
for (i = 0; i < globalStore.data.length; i++) {


/*long procedural code starts*/
var user = globalStore.data[0].UUID;
var user2 = globalStore.data[1].UUID;
var user3 = globalStore.data[2].UUID;
var user4 = globalStore.data[3].UUID;
var user5 = globalStore.data[4].UUID;
var user6 = globalStore.data[5].UUID;
var user7 = globalStore.data[6].UUID;
var user8 = globalStore.data[7].UUID;



var arr = globalStore.data[0].morning;
var arr2 = globalStore.data[1].morning;
var arr3 = globalStore.data[2].morning;
var arr4 = globalStore.data[3].morning;
var arr5 = globalStore.data[4].morning;
var arr6 = globalStore.data[5].morning;
var arr7 = globalStore.data[6].morning;
var arr8 = globalStore.data[7].morning;


var arr_af = globalStore.data[0].afternoon;
var arr2_af = globalStore.data[1].afternoon;
var arr3_af = globalStore.data[2].afternoon;
var arr4_af = globalStore.data[3].afternoon;
var arr5_af = globalStore.data[4].afternoon;
var arr6_af = globalStore.data[5].afternoon;
var arr7_af = globalStore.data[6].afternoon;
var arr8_af = globalStore.data[7].afternoon;

var arr_ev = globalStore.data[0].evening;
var arr2_ev = globalStore.data[1].evening;
var arr3_ev = globalStore.data[2].evening;
var arr4_ev = globalStore.data[3].evening;
var arr5_ev = globalStore.data[4].evening;
var arr6_ev = globalStore.data[5].evening;
var arr7_ev = globalStore.data[6].evening;
var arr8_ev = globalStore.data[7].evening;



$("div.morning_"+user+" span").each(function(){if(arr.indexOf($(this).attr("class")) > -1) {$(this).css("color","#26F525");}});
$("div.morning_"+user2+" span").each(function(){if(arr2.indexOf($(this).attr("class")) > -1) {$(this).css("color","#26F525");}});
$("div.morning_"+user3+" span").each(function(){if(arr3.indexOf($(this).attr("class")) > -1) {$(this).css("color","#26F525");}});
$("div.morning_"+user4+" span").each(function(){if(arr4.indexOf($(this).attr("class")) > -1) {$(this).css("color","#26F525");}});
$("div.morning_"+user5+" span").each(function(){if(arr5.indexOf($(this).attr("class")) > -1) {$(this).css("color","#26F525");}});
$("div.morning_"+user6+" span").each(function(){if(arr6.indexOf($(this).attr("class")) > -1) {$(this).css("color","#26F525");}});
$("div.morning_"+user7+" span").each(function(){if(arr7.indexOf($(this).attr("class")) > -1) {$(this).css("color","#26F525");}});
$("div.morning_"+user8+" span").each(function(){if(arr8.indexOf($(this).attr("class")) > -1) {$(this).css("color","#26F525");}});

$("div.afternoon_"+user+" span").each(function(){if(arr_af.indexOf($(this).attr("class")) > -1) {$(this).css("color","#26F525");}});
$("div.afternoon_"+user2+" span").each(function(){if(arr2_af.indexOf($(this).attr("class")) > -1) {$(this).css("color","#26F525");}});
$("div.afternoon_"+user3+" span").each(function(){if(arr3_af.indexOf($(this).attr("class")) > -1) {$(this).css("color","#26F525");}});
$("div.afternoon_"+user4+" span").each(function(){if(arr4_af.indexOf($(this).attr("class")) > -1) {$(this).css("color","#26F525");}});
$("div.afternoon_"+user5+" span").each(function(){if(arr5_af.indexOf($(this).attr("class")) > -1) {$(this).css("color","#26F525");}});
$("div.afternoon_"+user6+" span").each(function(){if(arr6_af.indexOf($(this).attr("class")) > -1) {$(this).css("color","#26F525");}});
$("div.afternoon_"+user7+" span").each(function(){if(arr7_af.indexOf($(this).attr("class")) > -1) {$(this).css("color","#26F525");}});
$("div.afternoon_"+user8+" span").each(function(){if(arr8_af.indexOf($(this).attr("class")) > -1) {$(this).css("color","#26F525");}});



$("div.evening_"+user+" span").each(function(){if(arr_ev.indexOf($(this).attr("class")) > -1) {$(this).css("color","#26F525");}});
$("div.evening_"+user2+" span").each(function(){if(arr2_ev.indexOf($(this).attr("class")) > -1) {$(this).css("color","#26F525");}});
$("div.evening_"+user3+" span").each(function(){if(arr3_ev.indexOf($(this).attr("class")) > -1) {$(this).css("color","#26F525");}});
$("div.evening_"+user4+" span").each(function(){if(arr4_ev.indexOf($(this).attr("class")) > -1) {$(this).css("color","#26F525");}});
$("div.evening_"+user5+" span").each(function(){if(arr5_ev.indexOf($(this).attr("class")) > -1) {$(this).css("color","#26F525");}});
$("div.evening_"+user6+" span").each(function(){if(arr6_ev.indexOf($(this).attr("class")) > -1) {$(this).css("color","#26F525");}});
$("div.evening_"+user7+" span").each(function(){if(arr7_ev.indexOf($(this).attr("class")) > -1) {$(this).css("color","#26F525");}});
$("div.evening_"+user8+" span").each(function(){if(arr8_ev.indexOf($(this).attr("class")) > -1) {$(this).css("color","#26F525");}});
/*ends*/

$("#contents").append("<div class='small-12 medium-12 large-12 columns text-left'> Availability:</div><div class='small-6 medium-6 large-6 columns text-left day morning_"+globalStore.data[i].UUID+"' id='"+globalStore.data[i].UUID+"'>Morning: <span class='Mon'>M </span><span class='Tue'>T </span><span class='Wed'>W </span><span class='Thrs'>T </span><span class='Fri'>F </span><span class='Sat'>S </span><span class='Sun'>S</span></div><div class='small-6 medium-6 large-6 columns text-left day afternoon_"+globalStore.data[i].UUID+"' id='"+globalStore.data[i].UUID+"'>Afternoon: <span class='Mon'>M </span><span class='Tue'>T </span><span class='Wed'>W </span><span class='Thrs'>T </span><span class='Fri'>F </span><span class='Sat'>S </span><span class='Sun'>S</span></div><div class='small-6 medium-6 large-6 columns text-left day evening_"+globalStore.data[i].UUID+"' id='"+globalStore.data[i].UUID+"'>Evening: <span class='Mon'>M </span><span class='Tue'>T </span><span class='Wed'>W </span><span class='Thrs'>T </span><span class='Fri'>F </span><span class='Sat'>S </span><span class='Sun'>S</span></div>");
}
});
});

最佳答案

我为您提供了一个解决方案,我没有使用 $.each 但您不需要编写重复的代码来更改颜色

你可以在你的成功 promise block 中调用一个函数

.then(function() {
for (i = 0; i < globalStore.data.length; i++) {

CheckAvailability(globalStore.data[i].UUID,globalStore.data[0].morning,globalStore.data[i].afternoonon,globalStore.data[i].evening)

//here your other code
}

定义一个这样的函数

function CheckAvailability(User,morning,afternoon,evening){
$("div.morning_"+User+" span").each(function(){
if(morning.indexOf($(this).attr("class")) > -1) {
$(this).css("color","#26F525");
}
});


$("div.afternoon_"+User+" span").each(function(){
if(afternoon.indexOf($(this).attr("class")) > -1) {
$(this).css("color","#26F525");
}
});

$("div.evening_"+User+" span").each(function(){
if(evening.indexOf($(this).attr("class")) > -1) {
$(this).css("color","#26F525");
}
});
}

here the fiddle with single value

关于javascript - 如何在 for 循环中使用 $.each 或替代方案,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/33430319/

28 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com