我有以下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块中的按钮如何正确返回我只能假设问题与标记/选择器有关。如何在不更改标记的情况下解决此问题?
答案 0 :(得分:2)
如果省略参数,.index()将返回该位置 与其相关的匹配元素集合中的第一个元素 兄弟姐妹
试试这个 -
$('.actionButton').index($this)
代替$this.index()
输出:
b0 index: 0
b1 index: 1
b2 index: 2
b3 index: 3
b4 index: 4
答案 1 :(得分:1)
而不是
$this.index()
尝试
$('.actionButton').index($this)
使用索引方法将Search for a given element from among the matched elements.
<强> Check Fiddle 强>
您希望根据class="actionButton"
的所有按钮获取按钮的索引。