js获取html input 单选框值的问题

news2024/10/6 0:30:02

测试代码:

ratio.html

<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <title>Title</title>
    <script src="ratio.js"></script>
</head>
<body>
    <input type="radio" name="travelmode" id="DRIVING" value="DRIVING" checked/>
    <label for="DRIVING">DRIVING</label>
    
    <input type="radio" name="travelmode" id="BICYCLING" value="BICYCLING" />
    <label for="BICYCLING">BICYCLING</label>
    
    <input type="radio" name="travelmode" id="TRANSIT" value="TRANSIT" />
    <label for="TRANSIT">TRANSIT</label>
    
    <input type="radio" name="travelmode" id="WALKING" value="WALKING" />
    <label for="WALKING">WALKING</label>
</body>
</html>

ratio.js

var radios = document.getElementsByName("travelmode");
console.log(radios)
console.log(radios.length)
for (var i = 0; i < radios.length; i++) {
  if(radios[i].checked){
      console.log("当前选中的值为:", radios[i].value)
  }
}

测试:

使用浏览器打开ratio.html,并按F12查看Console控制台输出如下图:

发现问题

console.log(radios)语句能看到数据NodeList(4)有数据,且length的值为4

而console.log(radios.length) 打印radios.length的结果却为0

因为ratios.length的实际值为0,所以程序没有进入for循环语句。

原因

    经过一番折腾,发现原来是因为js加载的顺序问题。js在head里引入,而ratio在head之后的body标签里,程序按顺序加载,js在input标签之前加载,自然加载不到input标签的数据。

解决问题

方法1.把js放在input标签之后,当input标签加载完成后,再加载js脚本。

<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <title>Title</title>    
</head>
<body>
    <input type="radio" name="travelmode" id="DRIVING" value="DRIVING" checked/>
    <label for="DRIVING">DRIVING</label>

    <input type="radio" name="travelmode" id="BICYCLING" value="BICYCLING" />
    <label for="BICYCLING">BICYCLING</label>

    <input type="radio" name="travelmode" id="TRANSIT" value="TRANSIT" />
    <label for="TRANSIT">TRANSIT</label>

    <input type="radio" name="travelmode" id="WALKING" value="WALKING" />
    <label for="WALKING">WALKING</label>
    
    <script src="ratio.js"></script>
</body>
</html>

方法2.引入js的script标签加上defer属性,当页面已完成加载后,才会执行js脚本。

<script src="ratio.js" defer></script>

任选方法1和方法2其中一种方法解决,浏览器打开效果如下:

可以看到打印radios.length的结果却为4,for循环语句也执行了。

总结

从这个问题可以看出,js加载的先后顺序对程序还是有较大的影响的,这也是为什么建议把引入js的语句放在body最后的原因了。

完成!enjoy it! 

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/598672.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

一文回顾 Boundless Hackathon at Stanford 首期 Workshop

由Stanford Blockchain Accelerator、Zebec Protocol、Nautilus Chain、Rootz Lab共同主办的“ Boundless Hackathon Stanford ”主题的黑客松活动&#xff0c;即将开启。该活动旨在帮助更多的优质开发者参与到Web3世界的发展中&#xff0c;推动链上设施的创新与应用。 在5月26…

常见的递归

⭐️前言⭐️ 本篇文章分享一些常见的递归题目&#xff0c;为后边的动态规划篇章做铺垫。 &#x1f349;欢迎点赞 &#x1f44d; 收藏 ⭐留言评论 &#x1f4dd;私信必回哟&#x1f601; &#x1f349;博主将持续更新学习记录收获&#xff0c;友友们有任何问题可以在评论区留言…

设计模式(三):创建型之原型模式

设计模式系列文章 设计模式(一)&#xff1a;创建型之单例模式 设计模式(二)&#xff1a;创建型之工厂方法和抽象工厂模式 设计模式(三)&#xff1a;创建型之原型模式 目录 一、设计模式分类二、原型模式1、概述2、结构2、实现3、扩展&#xff08;深克隆&#xff09; 一、设计…

SSM编程---Day 07

目录 SpringMVC 一、概念 二、springMVC的请求处理流程 三、mvc:annotation-driven 标签的作用 四、HandlerMapping、Handler和HandlerAdapter的介绍 五、SpringMVC 体系结构 六、SpringMVC的常用注解 七、view和controller之间的传值 SpringMVC 一、概念 1、 Spring…

ThreadLocal和局部变量的区别

ThreadLocal为线程提供一个线程级别的储物柜&#xff0c;可以往里面存数据&#xff0c;取数据。数据是专属于线程的。 而局部变量&#xff0c;也是专属于线程的。这样来看&#xff0c;两者似乎功能上是一样的&#xff0c;也确实是一样的。 不过局部变量只能通过显示传参的方式…

C++MFC 面向对象程序设计 小型通讯录管理程序设计

课程名称&#xff1a;面向对象程序设计 实验名称&#xff1a;小型通讯录管理程序设计 1.实验目的 深入理解面向对象技术的封装性、继承性和多态性&#xff0c;掌握面向对象程序设计方法。综合应用C基础知识实现小型应用程序开发。掌握使用C流类库实现数据文件访问的操作方…

LabVIEWCompactRIO 开发指南第七章47 EtherCAT RIO

LabVIEWCompactRIO 开发指南第七章47 EtherCAT RIO 在某些应用中&#xff0c;主I/O和扩展I/O系统需要紧密同步--所有输入和输出必须同时更新。使用确定性总线&#xff0c;主控制器不仅可以知道扩展I/O何时更新&#xff0c;还可以确切地知道数据到达需要多长时间。可以使用NI …

电动葫芦无法运转怎么办?

有关电动葫芦无法起动与运转故障&#xff0c;电动葫芦无法起动怎么办&#xff0c;有没有好的解决办法&#xff0c;检查电源熔丝是否烧断&#xff0c;定子绕组相间短路、接地或断路&#xff0c;以及是否负载过大或传动机械故障等。 电动葫芦无法运转故障怎么办 1、首先&#xf…

vue 3 第二十六章:样式(scoped、深度选择器、全局选择器、css modules、自定义注入名称、css中v-bind)

文章目录 1. 介绍2. 基本使用3. scoped原理4. 深度选择器5. 插槽选择器6. 全局选择器7. 混合使用局部与全局样式8. CSS Modules9. 自定义注入名称10. CSS 中的 v-bind() 1. 介绍 在 Vue 中&#xff0c;我们可以使用 scoped 特性来给组件的样式添加作用域。通过为组件的 <st…

win11 revit2022如何卸载干净

目录结构 杀死相关进程卸载相关应用卸载相关目录删除注册表中的相关数据 注意 &#xff1a;下面的结束任务和删除东西有则删除没有则不用管 杀死相关进程 进入任务管理器&#xff08;control shift esc&#xff09;结束相关任务&#xff08;Autodesk开头的文件和名字中带rev…

交通 | 共乘出行:基于图结构的动态多时空供需网络的均衡度量方法

​ 论文解读 郭王懿&#xff0c;孙楚天&#xff0c;陈泰劼&#xff0c;张云天 ​ 编者按 共乘出行极大地改变了人们的日常出行方式。如何高效运营背后的双边平台是极具挑战性的工作。滴滴出行、Lyft公司是其中的佼佼者。本专题将探讨双边平台运营中的一个关键问题&#xff…

高速吹风筒中的发热丝介绍--【其利天下技术】

高速吹风筒用得发热丝&#xff0c;其实是个大功率的家伙&#xff0c;整个产品它的功耗是最大的。它有什么特别的地方呢&#xff1f;与传统的风筒发热丝&#xff0c;高速风筒发热丝有何要求呢&#xff1f; 一&#xff1a;发热丝工作原理&#xff1a; 发热丝是指由导体材料制成的…

LabVIEWCompactRIO 开发指南第七章46 Ethernet RIO

LabVIEWCompactRIO 开发指南第七章46 Ethernet RIO 使用标准以太网协议扩展I/O时&#xff0c;可以使用NI9148以太网RIO扩展机箱。程序员可以利用现有的网络基础设施&#xff0c;如交换机和路由器。尽管全双工交换机网络消除了数据包冲突&#xff0c;但交换机会引入抖动&#…

LeetCode刷题 --- 哈希表

1. 两数之和 解题思路&#xff1a; 利用哈希表&#xff0c;key存数组当前值&#xff0c;value存数组下标两数之和等于target&#xff0c;可以看做是两个数是配对遍历数组&#xff0c;看哈希表中有没有值和这个当前值配对&#xff0c;如果没有&#xff0c;就存入哈希表如果有&am…

Fiddler抓包工具之fiddler设置过滤

fiddler设置过滤 基本的过滤操作流程以百度为例 步骤&#xff1a; 1、右侧高级工具栏点击Filters》勾选Use Filters》选择Show only Internet Hosts和Show only the following Hosts》在文本框中输入host地址 2、点击Changes not yet saved》再点击Actions》Run Filterset …

【医学图像】图像分割系列.4

介绍几篇使用Transformer结构做医学图像分割的论文&#xff1a;CASTformer&#xff08;NeuralPS2022&#xff09;&#xff0c;PHNet&#xff08;arXiv2023&#xff09;。 Class-Aware Adversarial Transformers for Medical Image Segmentation, NeuralPS2022 解读&#xff1a…

37. C++ 基于范围的for循环、指针空值——nullptr(c++11新特性)

目录 1.基于范围的for循环语法如下&#xff1a; 2.一些编程中的实例 3.指针空值——nullptr c11标准下的NULL和nullptr 今天进行了新的学习&#xff0c;基于范围的for循环。基于范围的 for 循环&#xff08;Range-based for loop&#xff09;是 C11 引入的一种循环结构…

机器学习 监督学习 Week3

Logistic Regression 一个用于分类的算法&#xff0c;模型拟合后&#xff0c;以某些值作为阈值&#xff0c;将数据区分为不同的类别。过去的回归算法中&#xff0c;y的值可以范围很广&#xff0c;而在分类算法中y代表类别&#xff0c;往往只有几个&#xff0c;甚至只有两个(tru…

物联网HMI的关键驱动力—SCADA级功能库和控件库

一、前言 在这个数字化时代&#xff0c;物联网HMI已成为连接人与设备之间的关键纽带&#xff0c;为用户提供直观、智能的交互体验&#xff0c;背后强大的关键驱动力扮演着至关重要的角色&#xff0c;其中SCADA级功能库和控件库的引入成为了物联网HMI设计和开发的核心要素。 S…

论文参考文献怎么引用|Word引用多篇参考文献|word参考文献连续引用|参考文献连续编号|交叉引用

一、参考文献准备 首先将参考文献在段落设置模型中进行编号&#xff0c;通过“交叉引用”对“参考文献”编号引用&#xff0c;以“[x-y]”引用格式实现连续多个文献引用。以实现以[1-3]交叉引用格式来引用[1][2][3] 三个连续参考文献为例说明本方法。 二、参考文献连续编号[…