【发布时间】:2021-04-24 11:35:50
【问题描述】:
<div>
<label for="rdb_disease">Are you okay?</label>
<div class="col-sm-9" class="rdb_disease">
<input type="radio" id="no" name="rdb_diseease" value="0">
<label for="no">No</label>
<input type="radio" id="yas" name="rdb_diseease" value="1">
<label for="yes">yes</label>
</div>
</div>
<div id="disease_panel">
<p>hello</p>
</div>
<script>
var rdb_disease = document.getElementById("rdb_disease");
function rdb_visible_hide_panel(rdb_name,panel_name) {
var radio = rdb_name.getElementsByTagName("input");
if (radio[1].checked == true) {
panel_name.style.display = "block";
} else {
panel_name.style.display = "none";
}
}
rdb_disease.addEventListener("change", function() {
rdb_visible_hide_panel(rdb_disease,disease_panel);
});
</script>
我看到一条错误消息(Uncaught TypeError: Cannot read property 'addEventListener' of null) 我认为问题是(getElementsByTagName) 但无论如何它无法到达 Element 我想在这些问题中解决什么问题
【问题讨论】:
-
这里发生了很多不正确的事情(几乎所有事情)。您是在什么阶段开始调试的?
-
这一行 rdb_disease.addEventListener("change", function()[ Noticeable The code works if used getElementById .
-
您使用了
document.getElementById("rdb_disease"),但没有具有类似 ID 属性的元素。你只有这个类的一个元素。 -
你为什么不定义 id
rdb_disease?只有<label for="rdb_disease" ">are you okay</label>这不是标签。for="rdb_disease" ". -
您的 DOM 中没有元素具有元素 rdb_disease。两个输入字段都有名称 rub_disease 即 name="rdb_diseease" ,并且试图通过 document.getElementById("rdb_disease") 获取这些是不正确的。您应该通过属性名称获取元素
标签: javascript html