Я хочу, чтобы иметь возможность ссылаться на любой элемент в HTML DOM, а также знать, в каком порядке элементы появляются. Я надеюсь, что элементы в DOM будут индексироваться где-то от 0 до <number-of-elements-minus-1>, поэтому что я могу идентифицировать определенные элементы и, отдельно, перечислять эти элементы в том порядке, в котором они появляются в HTML.
Например, в этом HTML элементы будут пронумерованы от 0 для элемента html, до 9 для второго элемента p:
<html lang="en-US">
<head>
<title>Element 2. Page title</title>
</head>
<body>
<h1 id="mainHead">Element 4. How to uniquely identify/order DOM elements</h1>
<div id="boxedContent">
<p class="smallText">Element 6. I want to be able to <span class="stress">7. uniquely</span> identify each element and <i>8. also</i> determine the order in which elements appear, reading from top to bottom through the HTML.</p>
</div>
<p>Element 9</p>
</body>
</html>
Я хочу, чтобы JavaScript/jQuery указывал, например, элемент title, first p element и span. HTML-страницы, с которыми я буду работать, не мои, но если есть индекс элемента DOM, который я могу получить, я мог бы получить эти 3 элемента, используя эти индексы ref, т.е.
Номера индексов позволят мне привести список в порядок.
Это возможно? Как мне это сделать?
Вы могли бы сделать что-то вроде этого:
var elems = document.getElementsByTagName('*');
Это создаст массивный объект всего элемента DOM.
Затем есть много способов получить индекс определенного элемента в этом объекте, подобном массиву.
Вы можете сделать это:
var indexOfTitle = elems.indexOf(document.getElementsByTagName('TITLE'));
Или вы можете создать цикл for
который циклически elems
по всем элементам в elems
переменной elems
и использует свойство like tagName
для его поиска и т.д.
index()
. Проверьте здесь: jsfiddle.net/Zw5ga РЕДАКТИРОВАТЬ: упс, похоже, что вы хотите нацелить элемент, используя его индекс, мой плохой, не по теме jsfiddle. См. Соответствующий jsFiddle: jsfiddle.net/Zw5ga/1 Использование в качестве селектора: $('*:eq(9)')
$('selector').index('*')
??? api.jquery.com/index