在单独的dom元素jquery上重复索引

时间:2013-05-20 19:14:47

标签: jquery dom indexing

我有以下html结构

<div class="someClass">
    <button class="actionButton" id="b0"></button>
</div>
<div class="otherClass">
    <button class="actionButton" id="b1"></button>
    <button class="actionButton" id="b2"></button>
    <button class="actionButton" id="b3"></button>
    <button class="actionButton" id="b4"></button>
</div>

我使用函数根据dom中的索引停用按钮,使用actionButton类作为选择器,如此

function DisableButtons(indexes, disable) {
    $('.actionButton').each(function () {
        $this = $(this);
        alert($this[0].id + " index: " + $this.index());
    });
}

我的提醒显示以下输出

b0 index: 3
b1 index: 0
b2 index: 1
b3 index: 2
b4 index: 3

第一个div包装器中的按钮与第二个div包装器中的最后一个按钮具有相同的索引。这是标记问题吗?

看到第二个div块中的按钮如何正确返回我只能假设问题与标记/选择器有关。如何在不更改标记的情况下解决此问题?

2 个答案:

答案 0 :(得分:2)

  

如果省略参数,.index()将返回该位置   与其相关的匹配元素集合中的第一个元素   兄弟姐妹

试试这个 -

$('.actionButton').index($this)代替$this.index()

输出:

b0 index: 0 
b1 index: 1 
b2 index: 2 
b3 index: 3 
b4 index: 4 

演示--> http://jsbin.com/esupev/2

答案 1 :(得分:1)

而不是

$this.index()

尝试

$('.actionButton').index($this)

使用索引方法将Search for a given element from among the matched elements.

<强> Check Fiddle

您希望根据class="actionButton"的所有按钮获取按钮的索引。