我正在开发一个小型的“ cc”应用程序,该应用程序是“发送电子邮件”,一开始我使用下拉菜单仅选择了1个接收器,但是之后我将多个类添加到dropdownList中,当我选择2-3个接收器时,我尝试调试仅与一个接收器一起使用的代码:
$("#SubmitEmail").click(function () {
var Receiver = $('#ReceiverID').val();
var Subject = $('#subject').val();
var Body = $('#content').val();
var obj = { 'Receiver': Receiver, 'Subject': Subject, 'Body': Body };
SendEmail(obj);
});
我意识到曾经用来存储接收器ID的
MVC
准确地变成了一个数组,我想知道javascript是如何适应soo cooooool的,所以它认识到我在那里选择了一些项目,并且它变成了一个数组,所以我简单地循环了一下它(修改了我的代码):$("#SubmitEmail").click(function () {
var Receivers = $('#ReceiverID').val();
for (var i = 0; i < Receivers.length; i++) {
var Receiver = Receivers[i];
var Subject = $('#subject').val();
var Body = $('#content').val();
var obj = { 'Receiver': Receiver, 'Subject': Subject, 'Body': Body };
}
SendEmail(obj);
});
而且一切都很酷,所以我只是想知道js怎么知道这一切?
最佳答案
从jQuery docs on val():
当集合中的第一个元素为select-multiple时(即
select元素(设置了multiple属性),. val()返回一个
包含每个选定选项的值的数组。
因此,实际上是jQuery魔术,而不是JavaScript魔术。
您可以看到val()
here的实际源代码。这个函数调用get
元素的select
hook,实际上在选定的选项上循环。