javascript - JS 找不到 HTML 选择
问题描述
我正在尝试使用 javascript 选择 HTML 选择。但它似乎没有找到一个。我已经在网上尝试了一些关于这个问题的答案,例如:
等待窗口完全加载:
window.onload = function(){
var opt = document.getElementsByName("productoptions");
console.log(opt.options);
}
并试图将 js 放在 select 元素之后。是的,我已经检查了很多次拼写。我想知道,为什么会这样。每次它都把我扔进控制台 - 未定义。也许你知道答案;)
当前的JS代码:
var opt = document.getElementById("typeselector");
if(opt.value === "DVD")
{
let furnitures = document.getElementsByClassName("furniture");
for(let i = 0; i < furnitures.length; i++)
furnitures[i].style.display = "none";
let books = document.getElementsByClassName("book");
for(let i = 0; i < books.length; i++)
books[i].style.display = "none";
}
部分HTML代码,负责HTML选择部分。
<div class="iRow">
<div class="lclass">
<label for="typeselector">Product Category</label>
</div>
<div class="tclass">
<select id="typeselector" name="productoptions">
<option value="DVD">DVD-Disc</option>
<option value="Book">Book</option>
<option value="Furniture">Furniture</option>
</select>
</div>
</div>
解决方案
document.getElementsByName 返回数组,所以使用 opt[0]
window.onload = function(){
var opt = document.getElementsByName("productoptions");
console.log(opt[0].options);
}
<div class="iRow">
<div class="lclass">
<label for="typeselector">Product Category</label>
</div>
<div class="tclass">
<select id="typeselector" name="productoptions">
<option value="DVD">DVD-Disc</option>
<option value="Book">Book</option>
<option value="Furniture">Furniture</option>
</select>
</div>
</div>
推荐阅读
- json - SonataAdminBundle json_array 字段给出 INVALID MODE / 字符串转换错误
- python - 如何获取 CountVectorizer feature_names 以设置它们,而不是按字母顺序?
- java - 如何将查询到的数据分配给 onBindViewHolder 中的 String 或 int?
- angular - 防止angular7中的默认上下文菜单
- scala - 验证列表 Scala 中的项目的好方法
- r - RcppParallel 结果随多线程变化
- wavesplatform - Waves 平台上部署的 RIDE 脚本可以删除、修改或覆盖吗?
- smarty - 带逗号和小数的 Smarty 模板
- svn - SVN更新获取顶层的所有新目录
- mysql - MySQL 不一致地更改与 InnoDB 表上的外键关联的索引名称