Jquery Index报告错误的索引

时间:2016-04-27 20:36:57

标签: javascript jquery indexing

HTML:

<!DOCTYPE html>
<html>
<head>
<link href="https://code.jquery.com/ui/1.11.4/themes/smoothness/jquery-ui.css" rel="stylesheet" type="text/css" />
<script src="https://code.jquery.com/jquery-1.11.3.js"></script>
<script src="https://code.jquery.com/ui/1.11.4/jquery-ui.js"></script>
  <meta charset="utf-8">
  <meta name="viewport" content="width=device-width">
  <title>JS Bin</title>
</head>
<body>
            <div id="radioButtonSet">
                <input type="radio" id="radio-value" name="dataChange" value="value" checked="checked" ><label for="radio-value">Value</label>
                <input type="radio" id="radio-percentage" name="dataChange" value="percent" ><label for="radio-percentage">Percentage</label>
            </div>
</body>
</html>

使用Javascript:

$("input[type=radio][name=dataChange]").on("change", function(){
  console.log($("input[type=radio][name=dataChange]").filter(":checked").index())
});

我希望索引为0和1,但它们分别为0和2.为什么?

演示:http://jsbin.com/xifutarumu/edit?html,js,console,output

3 个答案:

答案 0 :(得分:2)

the docs:&#34;如果没有参数传递给.index()方法,则返回值是一个整数,表示jQuery对象中第一个元素相对于其兄弟元素的位置&#34;

<div id="radioButtonSet">
    <input type="radio" id="radio-value" name="dataChange" value="value" checked="checked" >
    <label for="radio-value">Value</label>
    <input type="radio" id="radio-percentage" name="dataChange" value="percent" >
    <label for="radio-percentage">Percentage</label>
</div>

radio-percentage输入是其兄弟姐妹中的第三个,因此其索引为2。

答案 1 :(得分:1)

传递this作为index()的上下文似乎产生了预期的结果。 耸肩

$("input").index(this);

请参阅http://jsbin.com/wuzoxocura/1/edit?html,js,console,output

答案 2 :(得分:0)

正确显示索引为

0:第一次输入

1:在1次输入后标记

2:第二次输入