Javascript找不到选择值

时间:2012-06-18 08:05:50

标签: javascript

我有以下JavaScript:

var next_user = "1";

    i=0;
    for (i=0;i<=10;i++) 
    {
        var el = document.getElementById("user_list"); 
        var val = el[i].value;

        if (val <= next_user)
        {
            next_user = i;
        }   

        if (val >= next_user)
        {
            next_user = i;
        }   


            alert(next_user);
    }

我在屏幕上有以下选择框:

<select id="user_list" onclick="load_user(this)" name="user_list" size="21" style="width:200px;">
<option value="1">Bob</option>
<option value="2">john</option>
<option value="3">Frank</option>
<option value="5">tom</option>
</select>

我似乎无法按照我想要的方式工作。

选择框可以在列表中有10个用户,每个(选项)值都是唯一的(1-10)。

正如你在我的选择框中看到的那样我缺少值4.我上面的Javascript代码是通过选择框找到并找到缺少的第一个值。 (在上面的例子中,它应该回复4,因为它丢失了)但是如果Bob丢失了,那么它应该回复1。

这就是我上面的JavaScript代码应该做的事情,但我似乎无法弄清楚我做错了什么。 (好吧,我希望我这样做是正确的)

有谁知道我做错了什么?

(我不打算在这个阶段使用任何jQuery)

2 个答案:

答案 0 :(得分:1)

您应该使用您提取的select元素的options属性。

示例:

<script>
var userList = document.getElementById("user_list");
for (var i=0;i<userList.options.length; i++) {
    if (userList.options[i].value != (i+1)) {
        alert((i+1)+" is missing");
        break;
    }
}
</script>

答案 1 :(得分:1)

您可以使用以下代码提醒缺少的选项

var next_user = 1;
var el = document.getElementById("user_list");
for (i = 0; i < 10; i++) {
    var val = parseInt(el[i].value);

    if (val > next_user) {
        alert(next_user);
        break;
    } else {

        next_user++;
    }

}​

演示: http://jsfiddle.net/joycse06/75kM7/