如何在HTML中获取<input>元素的value属性?jQuery取值为undefined如何解决
问题原因分析
你给出的最小可复现代码本身逻辑是正常的,直接运行会输出radio和a,不会出现value为undefined的情况。出现该问题通常是以下两种场景导致的:
- 页面存在重复ID
HTML规范要求页面内ID属性唯一,当有多个元素使用id="radio"时,$("#radio")只会匹配页面中第一个出现的该ID元素。如果第一个匹配的单选框元素没有在HTML标签上声明value属性,就会出现你遇到的输出结果。 - JS执行时机早于DOM加载完成
如果你的JS代码写在<input>元素的上方,且没有添加DOM就绪监听,代码执行时浏览器还未完成该input元素所有属性的解析挂载,也可能出现属性读取异常。可以将JS代码移动到页面body尾部,或者包裹在jQuery的DOM就绪回调中即可解决,示例如下:
$(function() { // 所有DOM操作代码放到这里 console.log($("#radio").attr("type")); console.log($("#radio").attr("value")); })
内容的提问来源于stack exchange,提问作者YeZhuxi
相关产品推荐
相关产品推荐

