如何获取select元素的index()?

时间:2014-12-27 12:32:06

标签: jquery html-select

所需行为

获取<select>元素的准确索引号。

当前行为

无论实际索引号如何,都会返回

0

的jsfiddle

http://jsfiddle.net/rwone/hsp6jeLh/

HTML

<div class="my_class">
    <select>
        <option value="none">don't click me</option>
        <option value="bar1">bar1</option>
    </select>
</div>
<div class="my_class">
    <select>
        <option value="none">click me</option>
        <option value="bar2">bar2 - select me</option>
    </select>
</div>

的jQuery

$(document).on("change",".my_class select", function() {
console.log($(this).index());
console.log("Why isn't the above value 1?")
});

编辑01:

呃,刚刚意识到我应该在select元素中添加一个类并将其传递给on()方法。现在就试试......

不,这也不起作用:http://jsfiddle.net/rwone/hsp6jeLh/5/

2 个答案:

答案 0 :(得分:1)

index()仅适用于相邻元素。如果您删除了中间的结束并打开div,它就像您期望的那样:

<div class="my_class">
    <select>
        <option value="none">don't click me</option>
        <option value="bar1">bar1</option>
    </select>
    <select>
        <option value="none">click me</option>
        <option value="bar2">bar2 - select me</option>
    </select>
</div>

http://jsfiddle.net/hsp6jeLh/8/

答案 1 :(得分:0)

User @ Cattla的建议(似乎已被删除)有效:

http://jsfiddle.net/hsp6jeLh/6/

$(document).on("change",".my_class", function() {
console.log($(this).index());
});