【问题标题】:Possible to get list item (<li>) label with JavaScript?可以使用 JavaScript 获取列表项 (<li>) 标签吗?
【发布时间】:2011-02-17 12:24:39
【问题描述】:

如果我有一个包含 3 个项目的 ul 并且 list-style-type 设置为 lower-alpha,我最终会得到这个

一个。项目 1

b.第 2 项

c。第 3 项

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

【问题讨论】:

  • 附带说明,如果您的列表有订单,它应该是&lt;ol&gt;
  • 我正在使用 OL,所以我会得到数字,必须有一种方法可以通过 JavaScript 来获取。我知道没必要,但它会很流畅。
  • @bo1 如果浏览器没有 API,应该很容易确定当前元素与其父元素的索引,即列表编号。

标签: javascript jquery list dom


【解决方案1】:

不确定 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

【讨论】:

    猜你喜欢
    • 2019-10-11
    • 2014-11-26
    • 1970-01-01
    • 1970-01-01
    • 2015-10-04
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多