Получение элемента HTML

У меня есть такой HTML-документ

<html>
 <head></head>
  <body>
    <div id = "test_id"> First element </div>
    <div> Second element </div>
  </body>
</html>

Я могу получить доступ к первому элементу div через getElementById, но могу ли я каким-то образом получить доступ ко второму элементу?

var allDivs = document.querySelectorAll("div"); или вы можете попробовать ... document.querySelectorAll("div[id='']");, вы поняли.
JO3-W3B-D3V 26.08.2018 15:36

Конкретные селекторы, которые вам нужны, почти наверняка изменятся, если в документе больше этих двух узлов - getElementByTagName("div")[1] будет работать только в том случае, если нужный вам div является вторым в документе; использование nextSibling будет работать только в том случае, если он сразу следует за #test_id и т. д. Если вы не можете присвоить идентификатор или имя класса искомому элементу, вам нужно будет найти ориентир в существующем документе, который, как вы можете гарантировать, выиграл не меняются относительно div, который вы пытаетесь выбрать, и основывайте свой селектор на этом.

Daniel Beck 26.08.2018 15:52
Поведение ключевого слова "this" в стрелочной функции в сравнении с нормальной функцией
Поведение ключевого слова "this" в стрелочной функции в сравнении с нормальной функцией
В JavaScript одним из самых запутанных понятий является поведение ключевого слова "this" в стрелочной и обычной функциях.
Концепция локализации и ее применение в приложениях React ⚡️
Концепция локализации и ее применение в приложениях React ⚡️
Локализация - это процесс адаптации приложения к различным языкам и культурным требованиям. Это позволяет пользователям получить опыт, соответствующий...
Улучшение производительности загрузки с помощью Google Tag Manager и атрибута Defer
Улучшение производительности загрузки с помощью Google Tag Manager и атрибута Defer
В настоящее время производительность загрузки веб-сайта имеет решающее значение не только для удобства пользователей, но и для ранжирования в...
Безумие обратных вызовов в javascript [JS]
Безумие обратных вызовов в javascript [JS]
Здравствуйте! Юный падаван 🚀. Присоединяйся ко мне, чтобы разобраться в одной из самых запутанных концепций, когда вы начинаете изучать мир...
Система управления парковками с использованием HTML, CSS и JavaScript
Система управления парковками с использованием HTML, CSS и JavaScript
Веб-сайт по управлению парковками был создан с использованием HTML, CSS и JavaScript. Это простой сайт, ничего вычурного. Основная цель -...
JavaScript Вопросы с множественным выбором и ответы
JavaScript Вопросы с множественным выбором и ответы
Если вы ищете платформу, которая предоставляет вам бесплатный тест JavaScript MCQ (Multiple Choice Questions With Answers) для оценки ваших знаний,...
0
2
83
4
Перейти к ответу Данный вопрос помечен как решенный

Ответы 4

document.getElementsByTagName("div") возвращает все div в объект HTMLCollection, первый div - это 0, второй div - это 1:

var second = document.getElementsByTagName("div")[1]

console.info(second.innerHTML)
<html>
 <head></head>
  <body>
    <div id = "test_id"> First element </div>
    <div> Second element </div>
  </body>
</html>

Ответы только на код обычно можно улучшить, добавив пояснения. Те, которые объясняют, почему ответ работает, даже лучше, потому что они помогают людям понять ответ таким образом, чтобы они могли избежать проблемы в будущем.

Jason Aller 26.08.2018 17:07
Ответ принят как подходящий

Вы можете использовать Document.querySelectorAll() с конкретный индекс следующим образом:

var secondDiv = document.querySelectorAll('div')[1];
console.info(secondDiv);
<html>
 <head></head>
  <body>
    <div id = "test_id"> First element </div>
    <div> Second element </div>
  </body>
</html>

НУ НАКОНЕЦ ТО! Кто-то другой, кто действительно думает, что использование селектора запросов - лучший метод!

JO3-W3B-D3V 26.08.2018 15:38

Конечно, если HTML изменится, то этот код сломается. Поэтому в первую очередь у нас есть id.

Niet the Dark Absol 26.08.2018 15:39

Ты можешь попробовать :

var x = document.getElementById("test_id").nextSibling

Способ 1: получить родительский элемент, затем подсчитать до желаемого элемента, а затем прочитать по его имени,

document.getElementById("test_id").parentElement.getElementByTagName("div")[0].innerHTML;

Способ 2: прямой подсчет в div, как упоминалось, но в некоторых случаях он не работает

document.getElementByTagName("div")[1]

Другие вопросы по теме