<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>
我看到一个错误消息(uncattle typeerror:Cannot read property'add eventlistener'为null)我想问题是(getElementsByTagName)但无论如何它无法到达元素我想要的问题是什么
值必须是元素的id,而不是元素的类
或名称
。
参考:https://www.w3schools.com/tags/att_label_for.asp
您在中使用了额外的
”
。
添加了idrbd_disease
标记的
name
更正。diseease
=>disease
使用了三元运算符。
已创建变量disease_panel
。
将disease_panel
的默认display
更改为none
。
<div>
<label for="rdb_disease">Are you okay?</label>
<div class="col-sm-9" class="rdb_disease" id="rdb_disease">
<input type="radio" id="no" name="rdb_disease" value="0">
<label for="no">No</label>
<input type="radio" id="yas" name="rdb_disease" value="1">
<label for="yes">yes</label>
</div>
</div>
<div id="disease_panel" style = "display : none">
<p>hello</p>
</div>
<script>
var rdb_disease = document.getElementById("rdb_disease");
var disease_panel = document.getElementById("disease_panel");
function rdb_visible_hide_panel(rdb_name,panel_name) {
var radio = rdb_name.getElementsByTagName("input");
panel_name.style.display = radio[1].checked ? "block" : "none";
}
rdb_disease.addEventListener("change", function() {
rdb_visible_hide_panel(rdb_disease,disease_panel);
});
</script>