我已经尝试了几种不同的变体来查找选择元素的长度而没有任何工作!我无法弄清楚为什么,因为几个网站列出这是正确的代码。
这是javascript:
<script type="text/javascript">
alert(document.getElementById("opentimes").options.length);
</script>
以下是表格:
<form action="eateries.php" method="POST" name="filters">
<select name="opentimes" id="opentimes" onChange="document.forms.filters.submit();">
<option value="now">Open Now</option>
<option value="tonight">Open Tonight</option>
<option value="late">Open Late</option>
<option value="whenever">Open Whenever</option>
</select>
.......
</form>
我知道警报正在运行,因为我用简单的字符串测试了它。我尝试了像document.filters.opentimes.length和document.forms.filters.opentimes.length这样的变体,但没有任何作用!
感谢。
答案 0 :(得分:1)
您的代码实际上正在运行,但我想您的代码是在加载DOM之前执行的。试试这个,例如:
<script type="text/javascript">
window.onload = function(){
alert(document.getElementById("opentimes").options.length);
};
</script>
当加载网页上的HTML结构时,将执行包含在window.onload = function(){ ... };
中的所有代码。从那时起,您可以使用document.getElementById()
方法。
此外,您可以将代码移动到文档的末尾,但我不建议这样做。这太丑了。
答案 1 :(得分:1)
执行顺序。你可能试图在它存在于DOM之前访问#opentimes。
尝试将您的javascript 放在下面<select>
(按来源顺序)或将其包装在正文的加载事件中。
行动中的第二项建议
<script type="text/javascript">
onload = function()
{
alert(document.getElementById("opentimes").options.length);
}
</script>
但要注意 - 如果其他脚本正在使用它,您通常可以覆盖其他“on load”功能。