О внутреннем идентификаторе элементов DOM - PullRequest
0 голосов
/ 24 сентября 2018

Я бы хотел однозначно идентифицировать некоторые элементы DOM (в частности, элементы <li> из списка <ul>).Сначала я подумал об использовании атрибутов id или data-, но я отказался от этого варианта, поскольку эти атрибуты можно легко изменить с помощью инструментов разработчика.

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

Спасибо!

Ответы [ 3 ]

0 голосов
/ 24 сентября 2018

Нет внутренних идентификаторов для элементов.Нет никакого способа действительно установить идентификатор для элемента, который не может быть изменен.

Единственное, что вы действительно можете сделать, это сохранить ссылки на элементы в массиве / объекте / переменных, но даже человек может установитьточка останова в коде и изменить это.

Таким образом, в конце концов, на самом деле нет никакого способа идентифицировать элемент и не допустить, чтобы кто-то напал на инструменты разработчика и изменил его.

0 голосов
/ 24 сентября 2018

JavaScript не предоставляет свойство, похожее на хеш-код, с помощью которого можно идентифицировать объекты.

Если вы хотите хранить ссылки на конкретные дочерние элементы определенного элемента ul, который, как вы знаете, всегда будет наопределенное место на странице, выберите их напрямую, используя document.querySelectorAll() с таким количеством дочерних комбинаторов и :nth-child() селекторов, сколько необходимо.Большинство инструментов для разработчиков браузеров позволяют вам копировать уникальный селектор для желаемого элемента ul, используя инспектор элементов на основе расположения этого элемента в вашей структуре DOM.Просто добавьте > li к этому селектору и переберите все узлы дочерних элементов соответствующим образом.

0 голосов
/ 24 сентября 2018

Самым распространенным способом идентификации элементов DOM является использование либо свойства класса, либо идентификатора:

document.getElementById(id)
document.getElementsByClassName(className)

Здесь также есть опция для перебора элементов, найденных по тегу:

document.getElementsByTagName(tagName)

Если у вас нет контроля над HTML-разметкой, я думаю, что в вашем случае нет разницы.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...