能否使用JavaScript获取列表项(<li>)的标签?

7
如果我有一个包含3个项目的
    ,并且设置了list-style-typelower-alpha,那么我最终会得到以下结果:

    a. 项目1

    b. 项目2

    c. 项目3

    使用jQuery,我可以轻松获取您单击的任何项目的值 - 如果我点击第一个,则为“项目1”。但是,我能获取列表项标签吗?在这种情况下,a是什么?

2
顺便提一下,如果你的列表有顺序,它应该真的是<ol> - roryf
我正在使用一个OL,所以我会得到数字,一定有一种方法可以通过JavaScript获取它。虽然不是必要的,但这将非常方便。 - b01
如果浏览器没有API,确定当前元素到其父元素的索引(即列表编号)应该很容易。 - alex
1个回答

8

不确定DOM API是否暴露了这个,但是你可以这样做...

$('ul').on('click', 'li', function() {
    var label = String.fromCharCode(97 + $(this).index());
});

jsFiddle

如果您的元素数量不超过26个,您可以使用一个更简单的算法。但如果您有更多元素,通常需要使用一种更复杂的算法,被称为Excel行列算法

$('ul').on('click', 'li', function() {
  var index = $(this).index() + 1;
  var label = '';
  var mod;

  while (index) {
    mod = (index - 1) % 26;
    label = String.fromCharCode(97 + mod) + label;
    index = Math.floor((index - mod) / 26);
  }
});

jsFiddle


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接