收件人此代码工作正常。但不知道突然停止工作..改变代码的位置。
give error :
- Uncaught TypeError: Cannot read property 'options' of undefined (in chrome)
- no element found (in firefox)
var inputs = document.getElementsByTagName("select"); //get array of select tag
var sSrnti = inputs[0].options[inputs[0].selectedIndex].value; //get selected value of first list
var sType = inputs[1].options[inputs[1].selectedIndex].value;//get selected value of second list
var sStatus = inputs[2].options[inputs[2].selectedIndex].value;//get selected value of third list
请帮帮我.. 感谢
答案 0 :(得分:0)
如果您有一个如下所示的select元素:
<select id="ddlViewBy">
<option value="1">test1</option>
<option value="2" selected="selected">test2</option>
<option value="3">test3</option>
</select>
运行此代码:
var e = document.getElementById("ddlViewBy");
var strUser = e.options[e.selectedIndex].value;
将使strUser为2.如果你真正想要的是test2,那么这样做:
var e = document.getElementById("ddlViewBy");
var strUser = e.options[e.selectedIndex].text;
答案 1 :(得分:0)
您的HTML中至少有三个select
个元素,或者您的JavaScript在DOM加载之前就会被触发。
尝试以下方法......
<script type="text/javascript">
window.onload = function() {
// Your JavaScript here...
}
</script>
答案 2 :(得分:0)
我不明白你的意思
"after changing location for code"
你应该更清楚。但正如kippie在上面评论的那样,你很可能移动了调用你的js文件在html之上的脚本标签。 这是html的推荐布局
<!DOCTYPE html>
<html>
<head>
<title>some title</title>
<!-- add all refs to css files here taking note of the cascading property of css-->
<link href="..." rel="stylesheet">
</head>
<body>
</body>
<!-- add all calls to js files here, so you can be sure dom is loaded-->
<script src="somefile.js"></script>
</html>
如果您已完成此操作并且问题仍然存在,请告诉我您移动的代码以及移动到的位置。 您还可以使用chrome控制台尝试获取代码。 e.g
press control + shift + j on your keyboard
并使用相同的命令,例如document.getElementByID('#id')来查看是否可行,然后我们可以看到错误。
祝你好运。