Возможный получить элемент списка (<литий>) маркировка с JavaScript?

Если у меня есть a ul с 3 объектами в нем и list-style-type установлен на lower-alpha, Я заканчиваю с этим

a. Объект 1

b. Объект 2

c. Объект 3

С jQuery я могу легко получить значение любого объекта, который Вы нажимаете - "Объект 1", если я нажимаю первое. Но я могу получить маркировку элемента списка? В этом случае a?

6
задан alex 6 September 2010 в 02:18
поделиться

1 ответ

Не уверен, что DOM API раскрывает это, но вы можете сделать...

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

jsFiddle

... если у вас менее 26 элементов. Если у вас больше, вам придется использовать более сложный алгоритм, обычно известный как алгоритм Excel Row to Column.

$('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

7
ответ дан 17 December 2019 в 00:05
поделиться
Другие вопросы по тегам:

Похожие вопросы: