JQuery 或 Javascript:使用一周中的几天遍历数组



>我正在Electron中开发一个应用程序:一周中的每一天我都有7个

元素,它们的ID为 #btn-SUNDAY,#btn-MONDAY等。

单击其中任何一个按钮时,这些按钮应将

元素的 text 属性(ID 为 #day(更改为用户单击的一周中的任何一天。

我的猜测是遍历一个包含所有 7 天的数组,然后比较哪一天等于 #btn-[i],然后将 #day 的文本属性更改为索引处的字符串。

虽然我可以更改文本属性,但我总是得到"星期六和-1"。我显然做错了什么。我可能可以使用每个div 的 if 语句编写此代码,但我想节省时间。具有讽刺意味的是,我已经这样做了一段时间,解决方案可能非常容易,我只是看不到它。

这是我的代码片段,它包含在 html 页面中,带有

s:
var days = [];
days.push('SUNDAY', 'MONDAY', 'TUESDAY', 'WEDNESDAY', 'THURSDAY', 'FRIDAY', 'SATURDAY');
for (i in days){
$("#btn-"+days[i]).mouseup(function() {
$("#day").text(`${days[i]}, and ${days.indexOf(i)}`);
})
}

我猜我在那里的某个地方需要一个if语句,但天堂帮助我的大脑,我不知道在哪里。

我也可能不正确地使用"for (i in x("语法。仍然试图感受Javascript和JQuery。

任何帮助不胜感激,

-乔恩

你需要一个闭包,使用jQuery的each似乎适合这里

var days = ['SUNDAY', 'MONDAY', 'TUESDAY', 'WEDNESDAY', 'THURSDAY', 'FRIDAY', 'SATURDAY'];
$.each(days, function(i, day) {
$("#btn-" + day).on('mouseup', function() {
$("#day").text(day + ', and ' + i);
});
});
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>
<button id="btn-MONDAY">Monday</button>
<button id="btn-TUESDAY">Tuesday</button>
<button id="btn-WEDNESDAY">Wednesday</button>
<br /><br />
<p id="day"></p>

最新更新