Loading [MathJax]/jax/output/CommonHTML/config.js
首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >使用map.set创建和填充select元素,该元素将显示键值作为警报Javascript。

使用map.set创建和填充select元素,该元素将显示键值作为警报Javascript。
EN

Stack Overflow用户
提问于 2022-09-04 02:52:13
回答 1查看 33关注 0票数 0

我是新来的,我不确定我是否完全理解这项任务,所以任何反馈或建议都将不胜感激。

我正在尝试创建一个简单的select元素,它将使用一个映射数组来填充。

当选择下拉列表中的名称时,将弹出带有相应值的警报。

以下是我到目前为止所拥有的:

代码语言:javascript
运行
AI代码解释
复制
const studentMap = new Map();

studentMap.set("Dave", 89);
studentMap.set("Angela", 88);
studentMap.set("Luke", 97);
studentMap.set("Holly", 95);
studentMap.set("Ziggy", 89);

function dropDownGrades() {

    let select = document.createElement("SELECT");
    select.setAttribute("id", "mySelect");
    dropDownGradeBox.appendChild(select);

    for (let i = 0; i < studentMap.length; i++) {
        let names = studentMap.set(key);
        let newOption = document.createElement("option");
        newOption.setAttribute("id", "nameOptions");
        let textNode = document.createTextNode(names);
        newOption.appendChild(textNode);
        select.appendChild(newOption);
    }
}

以及HTML:

代码语言:javascript
运行
AI代码解释
复制
<head>

    <script type="text/Javascript" src="task2.js"></script>

</head>

<body onload = "dropDownGrades()"> 
<h1> Task 11 - Name and Grades</h1>
<p> Below is the dropdown list of names and, when clicked on, it should hopefully display an alert 
    box with the respective grade
</p>
<div id="dropDownGradeBox" onchange="studentGrade()"></div>
</body>    

谢谢

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2022-09-04 03:52:37

我希望这段代码和我的评论能对你的学习有所帮助。请学习每一行对你来说都不清楚。您还应该更多地注意代码对齐、变量和函数名。

代码语言:javascript
运行
AI代码解释
复制
// Constants
const dropDownGradeBox = document.getElementById("dropDownGradeBox");

// Lets incapsulate Map initialization
// Anonymous function declaration + call
// https://developer.mozilla.org/en-US/docs/Glossary/IIFE
const studentMap = (function () {
  const map = new Map();
  map.set("Dave", 89);
  map.set("Angela", 88);
  map.set("Luke", 97);
  map.set("Holly", 95);
  map.set("Ziggy", 89);
  return map;
})();
// !Constants

// Naming changes
function Initialize() {
  const select = document.createElement("SELECT");
  select.setAttribute("id", "students-list");
  select.setAttribute("name", "students-list");
  select.onchange = onStudentsSelectChange;

  // Map objects can be iterated using for..of
  // where the item for each iteration is an array of [key, value]
  // You can see "Array destructuring" to extract key value from array
  // without need to use
  // "const item of studentMap" + "const key = item[0]" + "const value = item[1]"
  // but actually value is not used so it can be "const [key] of studentMap"
  for (const [key] of studentMap) {
    let newOption = document.createElement("option");
    // "value" attribute now holds a "key" of our map, which is a name of student.
    newOption.setAttribute("value", key);
    newOption.text = key;
    select.appendChild(newOption);
  }

  // <select> element is now prepared and holds all the options.
  dropDownGradeBox.appendChild(select);
}

// Naming!
function onStudentsSelectChange(e) {
  // "e.target.value" holds the "key" of the Map we used
  const selectedName = e.target.value;
  // studentsMap is "global" and we can get data from it by key
  // You can also extend Map Data to hold objects, not only "grade" values.
  // like map.set("Dave", {grade: 89, age: 22});
  const studentData = studentMap.get(selectedName);
  console.log(selectedName, studentData);
  // "String Interpolation"
  alert(`${selectedName}: ${studentData}`);
}
代码语言:javascript
运行
AI代码解释
复制
<!DOCTYPE html>
<html>
  <head>
    <title>Parcel Sandbox</title>
    <meta charset="UTF-8" />
  </head>
  <body onload="Initialize()">
    <h1>Task 11 - Name and Grades</h1>
    <p>
      Below is the dropdown list of names and, when clicked on, it should
      hopefully display an alert box with the respective grade
    </p>
    <div id="dropDownGradeBox"></div>
  </body>
</html>

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

https://stackoverflow.com/questions/73598748

复制
相关文章
sas文本挖掘案例:如何使用SAS计算Word Mover的距离
Word Mover的距离(WMD)是用于衡量两个文档之间差异的距离度量,它在文本分析中的应用是由华盛顿大学的一个研究小组在2015年引入的。
拓端
2020/07/17
1.2K0
sas文本挖掘案例:如何使用SAS计算Word Mover的距离
浮点数在计算机中是如何表示的
相比int等整型,float等浮点类型的表示和存储较为复杂,但它又是一个无法回避的话题,那么就有必要对浮点一探究竟了。在计算机中,一般用IEEE浮点近似表示任意一个实数,那么它实际上又是如何表示的呢?
编程珠玑
2019/09/02
1.9K0
Netty 在 Dubbo 中是如何应用的?
众所周知,国内知名框架 Dubbo 底层使用的是 Netty 作为网络通信,那么内部到底是如何使用的呢?今天我们就来一探究竟。
IT大咖说
2020/02/26
2.2K0
Tomcat在SpringBoot中是如何启动的?
我们知道SpringBoot给我们带来了一个全新的开发体验,我们可以直接把web程序打成jar包,直接启动,这就得益于SpringBoot内置了容器,可以直接启动,本文将以Tomcat为例,来看看SpringBoot是如何启动Tomcat的,同时也将展开学习下Tomcat的源码,了解Tomcat的设计。
挨踢小子部落阁
2019/10/14
1.6K0
Tomcat在SpringBoot中是如何启动的?
Tomcat在SpringBoot中是如何启动的
我们知道SpringBoot给我们带来了一个全新的开发体验,我们可以直接把web程序达成jar包,直接启动,这就得益于SpringBoot内置了容器,可以直接启动,本文将以Tomcat为例,来看看SpringBoot是如何启动Tomcat的,同时也将展开学习下Tomcat的源码,了解Tomcat的设计。
macrozheng
2019/09/27
1.7K0
Tomcat在SpringBoot中是如何启动的?
我们知道SpringBoot给我们带来了一个全新的开发体验,我们可以直接把web程序打成jar包,直接启动,这就得益于SpringBoot内置了容器,可以直接启动,本文将以Tomcat为例,来看看SpringBoot是如何启动Tomcat的,同时也将展开学习下Tomcat的源码,了解Tomcat的设计。
Bug开发工程师
2019/10/11
1.4K0
Tomcat在SpringBoot中是如何启动的?
在 Python 中是如何管理内存的?
Python内存池:内存池的概念就是预先在内存中申请一定数量的,大小相等 的内存块留作备用,当有新的内存需求时,就先从内存池中分配内存给这个需求,不够了之后再申请新的内存。这样做最显著的优势就是能够减少内存碎片,提升效率。
宇宙之一粟
2020/10/26
1.9K0
Netty 在 Dubbo 中是如何应用的?
众所周知,国内知名框架 Dubbo 底层使用的是 Netty 作为网络通信,那么内部到底是如何使用的呢?今天我们就来一探究竟。
Java技术栈
2019/11/29
9760
SQL语句在MySQL中是如何执行的
开门见山,当我们输入一条 SQL 语句的时候,MySQL 内部究竟执行了什么?直接上架构图,我们才能对其有一个概念,而不要陷入细节之中。
码哥字节
2020/03/24
4.5K0
SQL语句在MySQL中是如何执行的
Java 类在 Tomcat 中是如何加载的?
https://www.cnblogs.com/xing901022/p/4574961.html
Java技术栈
2019/09/26
2.6K0
Java 类在 Tomcat 中是如何加载的?
梯度是如何计算的
引言 深度学习模型的训练本质上是一个优化问题,而常采用的优化算法是梯度下降法(SGD)。对于SGD算法,最重要的就是如何计算梯度。此时,估计跟多人会告诉你:采用BP(backpropagation)算
机器学习算法工程师
2018/03/06
2.6K0
梯度是如何计算的
浮点数在计算机系统中是如何表示和存储的
在计算机系统中,浮点数是以一种称为浮点数表示法的形式来表示和存储的。浮点数表示法使用科学计数法的形式,将一个实数表示为一个值乘以一个基数的幂的形式。表示一个浮点数需要三个要素:符号位、尾数和指数。
一凡sir
2023/08/10
5320
程序在计算机中如何运行的
累加寄存器(AC) :主要进行加法运算。 标志寄存器(PSW) :记录状态,做逻辑运算。 程序计数器(PC) :是用于存放下一条指令所在单元的地址的地方。 基质寄存器(BX) :储存当前数据内存开始的位置。 变址寄存器 :储存基质寄存器的相对位置。 通用寄存器(GPRs):支持有所的用法。 指令寄存器(IR) :CPU专用,储存指令。 堆栈寄存器(SP) :记录堆栈的起始位置。
心跳包
2020/08/31
1.6K0
程序在计算机中如何运行的
RPM索引在Artifactory中是如何工作
RPM是用于保存和管理RPM软件包的仓库。我们在RHEL和Centos系统上常用的Yum安装就是安装的RPM软件包,而Yum的源就是一个RPM软件包的仓库。JFrog Artifactory是成熟的RPM和YUM存储库管理器。JFrog的官方Wiki页面提供有关Artifactory RPM存储库的详细信息。
JFrog杰蛙科技
2020/07/03
2.1K0
RPM索引在Artifactory中是如何工作
在 golang 中是如何对 epoll 进行封装的?
在协程没有流行以前,传统的网络编程中,同步阻塞是性能低下的代名词,一次切换就得是 3 us 左右的 CPU 开销。各种基于 epoll 的异步非阻塞的模型虽然提高了性能,但是基于回调函数的编程方式却非常不符合人的的直线思维模式。开发出来的代码的也不那么容易被人理解。
开发内功修炼
2022/05/07
4.1K0
在 golang 中是如何对 epoll 进行封装的?
SAS宏程序中的查询
我们在写相对复杂的宏的时候,通常会在开始位置加一些判断,比如判断某个变量是否在、一个路径是否存在、一个路径下面某种文件是否存在。。。
专业余码农
2020/07/16
1.2K0
sas软件是做什么的?数据分析sas软件,sas软件下载安装教程
SAS是一款用于数据分析和统计建模的软件。它可以帮助用户对大量数据进行处理、分析、建模和可视化。下面我们来看看它的一些主要特点。
用户10436734
2023/03/31
1.9K0
sas软件是做什么的?数据分析sas软件,sas软件下载安装教程
什么是JWT及在JAVA中如何使用?
在不使用JWT的情况下,我们一般选择的是cookie和session来进行服务鉴权(判断是否登录,是否具有某种权限),但是这是针对于只有一个客户端的情况下,现在客户端从pc端增长到了app端,现在就是多端访问了。
叫我阿杰好了
2022/11/07
3.2K0
什么是JWT及在JAVA中如何使用?
高级语言中的语句在汇编中是如何实现的
我们都知道对于c语言来说,它是需要先转换成汇编语言,然后再生成机器语言的。那么在c语言中,各种条件语句,各种表达式的计算,在汇编中是何如实现的呢?今天我们就来讲解一下。
程序那些事儿
2023/03/07
6880
高级语言中的语句在汇编中是如何实现的
【方法】学习 SAS 的正确姿势是怎样的?
作者 CDA 数据分析师 SAS 作为世界知名大数据分析产品,只要是大机构, 不论是、制药、金融、保险、市场部门、NGO 还是政府部门,SAS 的覆盖率,都是完全不可被替代的。甚至部分IT公司在统计
CDA数据分析师
2018/02/26
2.2K0
【方法】学习 SAS 的正确姿势是怎样的?

相似问题

映射与复杂键的多个索引

22

从多个映射和键列表到映射中的键和相应值的列表

40

yml -多个键映射到相同的值

151

Groovy映射中相同键的多个值

118

具有多个键映射到相同值的字典

568
添加站长 进交流群

领取专属 10元无门槛券

AI混元助手 在线答疑

扫码加入开发者社群
关注 腾讯云开发者公众号

洞察 腾讯核心技术

剖析业界实践案例

扫码关注腾讯云开发者公众号
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档