javascript一些如何停止工作

时间:2013-09-30 08:25:55

标签: javascript

收件人此代码工作正常。但不知道突然停止工作..改变代码的位置。

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

请帮帮我.. 感谢

3 个答案:

答案 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')来查看是否可行,然后我们可以看到错误。

祝你好运。