【问题标题】:How manieth element is this?这是多少元素?
【发布时间】:2012-06-21 22:03:58
【问题描述】:

我如何知道元素的数量? (使用 Javascript 或 jQuery) 假设我有一个UL,里面有多个LI,我怎么知道点击的LI是第4个还是第6个?

$('li').click(function(){
    nth = $(this).nth();
    alert(nth);
});

【问题讨论】:

    标签: javascript jquery


    【解决方案1】:

    你可以试试nth = $(this).prevAll().count() + 1

    【讨论】:

      【解决方案2】:

      你可以使用索引方法:

      var nth = $(this).index()+1;
      

      【讨论】:

        【解决方案3】:
        $('li').click(function(){
            alert($(this).index());
        });
        

        【讨论】:

          【解决方案4】:

          您可以为此使用 jQuery 的 .index

          ​$("li").click(function() {
              var nth = $("ul li").index($(this));
              alert(nth);
          });​
          

          Live example

          【讨论】:

          • 这个答案高于使用 $(this).index() 的答案的优点是,如果 ul 元素的某些子元素不是 li 元素,它也可以正常工作。
          • @Confusion - 如果 ul 有不是 li 元素的直接子元素,它们会是有效元素吗? developer.mozilla.org/en/HTML/Element/ul 我想这不会改变一些浏览器无论如何都会在索引中考虑它们的事实。
          • @KevinB - 我以为你可以直接嵌套列表,但它似乎已被弃用,如 e.g. stackoverflow.com/questions/5899337/…
          【解决方案5】:

          我做了类似的事情

          $('li').each(function (i) {
            $(this).data("pos", i);
          }).click(function() {
            var nth = $(this).data("pos");
            alert(nth);
          });
          

          我总是需要这个职位来做其他事情,所以我把它留了下来。

          【讨论】:

            猜你喜欢
            • 2015-08-12
            • 1970-01-01
            • 2021-03-09
            • 1970-01-01
            • 1970-01-01
            • 2015-05-18
            • 1970-01-01
            • 2019-03-09
            • 1970-01-01
            相关资源
            最近更新 更多