<div class="parent">
<div class="formRow js-TextBox"><a></div> <------ index 0
<div class="formRow js-Image"><a></div> <------ index 1
<div class="formRow js-TextBox"><a></div><------ index 2
<div class="formRow js-ImageList"><------ index 3
<div class="formRow js-Image"><a></div> <-- **This should return 3 but is returning 4 because I search index on the basis of formRow**
</div>
查找formRow
索引的代码
var parent = $(this).parents("div.formRow");
var rowIndex = parent.parent().find("div.formRow").index(parent);
请参阅上面的代码,并告知如何找到我点击锚元素formRow
的{{1}}索引。
问题是最后一个表单行包含另一个a
,但我想要父表单行的索引。
答案 0 :(得分:0)
你可以修改上面的内容 - 我会在前三个中添加另一个css类 - primaryRow,并在jQuery表达式中使用它而不是formRow
好的 - 运行此代码:
$('.parent > div').addClass('primaryRow');
添加课程。
然后
var rowIndex = $('.primaryRow').index($(this).parents().find('.primaryRow'));
答案 1 :(得分:0)
我将消除歧义并在渲染时向元素提供行号,即
<div class="formRow js-TextBox" id="row<%= rownumber %>"><a></div>
或者作为锚点的ID:
<div class="formRow js-TextBox"><a id="row<%= rownumber %>"></div>
有很多方法可以解决这个问题。我总觉得如果事情看起来很难,那么我就是从错误的方向接近它(或者说是错误的)。
答案 2 :(得分:0)
这很有效。
$('a').click(function(){
var i = $(this).parents('.parent > .formRow').index('.parent > .formRow');
alert(i);
return false;
});
检查出来:jsfiddle