首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >为什么javascript认识到我的控件现在持有一个数组?

问为什么javascript认识到我的控件现在持有一个数组?
EN

Stack Overflow用户
提问于 2017-06-05 00:29:12
回答 3查看 40关注 0票数 0

我正在开发小型MVC应用程序,即“发送电子邮件”,在开始时,我只使用下拉菜单来选择一个接收器,但之后,我在dropdownList中添加了多个类,当我选择2-3个接收器时,当我尝试调试这个代码时,我只使用了一个接收器:

代码语言:javascript
复制
$("#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);
});

我意识到,我以前用来存储var Receiver的receiverId成了一个数组,我想知道javascript是如何适应cooooool的,所以它认识到我在那里选择了几个项目,它变成了一个数组,所以我简单地循环了它(修改了我的代码):

代码语言:javascript
复制
$("#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知道这一切?

EN

回答 3

Stack Overflow用户

回答已采纳

发布于 2017-06-05 00:36:43

来自val()上的jQuery文档

当集合中的第一个元素是select-multiple (即select元素和多个属性集)时,.val()返回一个数组,其中包含每个选定选项的值。

这实际上是jQuery魔术,而不是JavaScript魔术。

您可以看到val() 这里的实际源代码。它是一个函数,调用select元素的select,它实际上对所选的选项执行一个循环。

票数 1
EN

Stack Overflow用户

发布于 2017-06-05 00:35:59

正如您所述,Javascript很酷,但在本例中,它实际上是Jquery实现灵活性,它返回对象数组以供下拉。详情请参见http://api.jquery.com/val/。

票数 0
EN

Stack Overflow用户

发布于 2017-06-05 00:36:24

这就是jQuery的工作方式。请参见.val()函数:

http://api.jquery.com/val/

此示例向下滚动:

从单个select获取单个值,从多个select获取一个值数组,并显示它们的值。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/44360192

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档