可能重复:
Why does jQuery or a DOM method such as `getElementById` not find the element?
我确信这是显而易见的,但是2小时的头部撞击。试图从我的每个选择框中获取值:
<table>
<tr><td>Team</td><td>Games</td><td>Players</td></tr>
<tr><td><div id="selTeam">
<select name="teams" id="teams" onChange="sndReq(this)" >
<option value="-1">-- Not Set --</option>
</select>
</div></td>
<td><div id="selGames">
<select name="games" id="games" onChange="sndReq(this)" )" >
<option value="-1">-- Not Set --</option>
</select>
</div></td>
<td><div id="selPlayers">
<select name="players" id="players" onChange="sndReq(this)" )" >
<option value="-1">-- Not Set --</option>
</select>
</div></td></tr>
</table>
这是我正在使用的javascript,getElementById一直返回null。
var selbox = document.getElementById("teams");
var idx = selbox.selectedIndex;
var teamValue = selbox.options[idx].value;
var selbox = document.getElementById("games");
var idx = selbox.selectedIndex;
var gameValue = selbox.options[idx].value;
var selbox = document.getElementById("players");
var idx = selbox.selectedIndex;
var playerValue = selbox.options[idx].value;
我正在尝试不使用JQuery。
谢谢!
答案 0 :(得分:1)
这些是document.getElementById("teams");
可能返回null
的一些原因:
id="teams"
。<body>
末尾运行此代码。您无法从<head>
部分运行此代码。id="teams"
无法正确解释。最常见的错误是您过早地运行代码并且必须在运行代码之前等待DOM加载,或者必须在<body>
标记的末尾触发代码{ {1}}。
答案 1 :(得分:1)
你的代码很好。这是一个working example。确保在呈现HTML后运行JS。将其放在身体的底部,或者在window.onload
中运行。
这应该可以正常工作:
<table>
<tr><td>Team</td><td>Games</td><td>Players</td></tr>
<tr><td><div id="selTeam">
<select name="teams" id="teams" onChange="sndReq(this)" >
<option value="-1">-- Not Set --</option>
</select>
</div></td>
<td><div id="selGames">
<select name="games" id="games" onChange="sndReq(this)" )" >
<option value="-1">-- Not Set --</option>
</select>
</div></td>
<td><div id="selPlayers">
<select name="players" id="players" onChange="sndReq(this)" )" >
<option value="-1">-- Not Set --</option>
</select>
</div></td></tr>
</table>
<script type="text/javascript" language="javascript">
var selbox = document.getElementById("teams");
var idx = selbox.selectedIndex;
var teamValue = selbox.options[idx].value;
var selbox = document.getElementById("games");
var idx = selbox.selectedIndex;
var gameValue = selbox.options[idx].value;
var selbox = document.getElementById("players");
var idx = selbox.selectedIndex;
var playerValue = selbox.options[idx].value;
</script>