【问题标题】:Finding Dom Node Index for elements of a certain class查找某个类的元素的 Dom 节点索引
【发布时间】:2014-05-25 01:33:35
【问题描述】:

您好,我有一系列不同类别的标签。单击跨度时,我想返回跨度类的索引。所以不是跨度本身的索引。

这是一个示例 html:

<span class='spantype1'>text1</span>
<span class='spantype2'>text2</span>
<span class='spantype1'>text3</span>

所以如果我点击 text3 我想返回 1 而不是 2。

here 的这个答案不起作用:

$( "span" ).click(function() {
    var index = $(this).parent().children().index(this);
alert(index);
});

编辑:我的意思是如果我点击 text3 我会返回 1,如果我点击 text1 我会返回 0。我很抱歉。当然,如果我点击 text2 我会返回 0。

【问题讨论】:

  • 索引从0开始
  • 我编辑了这个问题,它有一个错误。见上图,谢谢

标签: javascript jquery indexing


【解决方案1】:

试试,

$( "span" ).click(function() {
    var index = $('.' + $(this).attr('class')).index($(this));
    alert(index + 1);
});

DEMO

【讨论】:

  • 美丽。当我写得不好时,你回答了我的问题。请参阅上面编辑过的问题。我用更多的跨度测试了您的解决方案并且它有效。见here
  • Sudhar,我用我的实际 html 文件尝试了这个,它每次都返回 -1。我构建了一个具有相同 dom 结构的JSFiddle 向您展示。问题是每个跨度有两个类,但我们只关心第一个类的索引。所以我不知道为什么我得到-1。有什么想法吗?
【解决方案2】:

试试这个:

var index = $(this).parent().find($(this)).index();

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2010-09-27
    • 1970-01-01
    • 1970-01-01
    • 2012-07-30
    • 1970-01-01
    • 1970-01-01
    • 2012-03-07
    相关资源
    最近更新 更多