Получить префикс для элемента в упорядоченном списке HTML - PullRequest
0 голосов
/ 17 января 2019

Предположим, следующий упорядоченный список в HTML, используя римские цифры

<ol type="I">
    <li>one</li>
    <li>two</li>
    <li>three</li>
    <li>four</li>
    <li value="1984">big brother</li>
</ol>

Что отображается как:

        I. one
       II. two
      III. three
       IV. four
MCMLXXXIV. big brother

Есть ли способ, для произвольного элемента, извлечь из его свойств строку, используемую для префикса этого элемента?

Например, учитывая четвертый элемент, могу ли я что-то сделать, чтобы получить строку IV? Или учитывая последний элемент, получая строку MCMLXXXIV?

1 Ответ

0 голосов
/ 17 января 2019

Вам нужно написать функцию латиницы.Если я правильно понимаю ваш вопрос.

Было бы полезно иметь индекс элемента списка в качестве значения или элемента данных.

Вот скрипка

$("li").each(function(){
    
    if ($(this).text() === 'big brother') {
    	alert(romanize($(this).val()));
    }
 });
 
 function romanize (num) {
    if (isNaN(num))
        return NaN;
    var digits = String(+num).split(""),
        key = ["","C","CC","CCC","CD","D","DC","DCC","DCCC","CM",
               "","X","XX","XXX","XL","L","LX","LXX","LXXX","XC",
               "","I","II","III","IV","V","VI","VII","VIII","IX"],
        roman = "",
        i = 3;
    while (i--)
        roman = (key[+digits.pop() + (i * 10)] || "") + roman;
    return Array(+digits.join("") + 1).join("M") + roman;
}
<script src="https://cdnjs.cloudflare.com/ajax/libs/jquery/3.3.1/jquery.min.js"></script>

<ol type="I">
  <li value="1">one</li>
  <li value="2">two</li>
  <li value="3">three</li>
  <li value="4">four</li>
  <li value="1984">big brother</li>
</ol>

Как видно здесь

...