搜索互联网。了解了如何做到这一点。实施它。但它不起作用。 我想在选择学生时显示div学生,在选择教师时显示div老师。这是jsp文件的一部分。
HTML code:
<table>
<tr>
<td>
<select id="userType">
<option value="student">STUDENT</option>
<option value="teacher">TEACHER</option>
<option value="admin">ADMIN</option>
</select>
</td>
</tr>
<table>
Javascript代码:
<script type="text/javascript">
var elem = document.getElementById('userType');
elem.onchange = function() {
var studentDiv = document.getElementById('student');
var teacherDiv = document.getElementById('teacher');
studentDiv.style.display = (this.value.equals("student")) ? 'block':'none';
teacherDiv.style.display = (this.value.equals("teacher")) ? 'block':'none';
};
</script>
我从早上起就试图做到这一点。尝试了其他方法。什么都行不通。我做错了什么?
答案 0 :(得分:2)
在您的代码中将equals
更改为==
,它有效DEMO
var elem = document.getElementById('userType');
elem.onchange = function() {
var studentDiv = document.getElementById('student');
var teacherDiv = document.getElementById('teacher');
studentDiv.style.display = (this.value == "student") ? 'block' : 'none';
teacherDiv.style.display = (this.value == "teacher") ? 'block' : 'none';
};
答案 1 :(得分:0)
您可以获得所选选项的价值,如下所示:
<强> JSFIDDLE 强>
<script type="text/javascript">
var elem = document.getElementById('userType');
elem.onchange = function() {
var studentDiv = document.getElementById('student');
var teacherDiv = document.getElementById('teacher');
studentDiv.style.display = this.options[this.selectedIndex].value == "student" ? 'block':'none';
teacherDiv.style.display = this.options[this.selectedIndex].value == "teacher" ? 'block':'none';
};
</script>
答案 2 :(得分:0)
试试这个
studentDiv.style.display = (this.value==="student") ? 'block':'none';
teacherDiv.style.display = (this.value==="teacher") ? 'block':'none';
答案 3 :(得分:0)
立即出现两个问题:
您正在尝试选择未定义ID的项目。 您在元素值属性上调用不存在的“.value”。
这些错误将在您的浏览器开发人员工具中报告。使用它们。