Я знаю, что почти любой элемент в DOM может иметь атрибут «id», и я использовал его для отслеживания каждого клиента в таблице клиентов. Я также знаю, что вы не должны иметь какой-либо идентификатор повторяться. В моем коде в качестве идентификатора строки задан "clientId" каждого человека, который поступает из уникального ключа в базе данных, поэтому повторов не будет ... но в другом месте на странице есть таблица "проблем", где Я устанавливал идентификатор каждой строки в "IssueId" (опять-таки уникальный ключ), но я понял, что clientId, потенциально может совпадать с IssueId, и я не знаю последствия.

Я ищу способ идентифицировать каждую строку, чтобы я мог вызвать их позже. Есть ли другой атрибут, который я могу использовать, который был бы предпочтительным для этого? я должен просто добавить слово «клиент» перед номером при назначении идентификаторов? Я хочу использовать стандартные методы и быстрое веб-приложение здесь.

Это нормально, если клиент и номер выпуска совпадают, потому что я всегда буду знать, какой из них я ищу, и я могу сначала перейти к таблице при поиске. Я просто не хочу использовать «id», потому что запрещено повторять id. Например, если я ищу проблему, я могу использовать что-то вроде. document.getElementById("issueTable").getElementBySOMETHING(issueId) вместо просто document.getElementBySOMETHING(issueId)

0
VoltzRoad 25 Янв 2013 в 04:07

2 ответа

Лучший ответ

Чтобы убедиться в отсутствии конфликтов, вы можете добавить уникальный префикс к вашим значениям id , например, client-X или issue-X.
Теперь, даже если они используют один и тот же ключ, атрибут id отличается для каждого из-за этого префикса. Затем вы можете изменить свой код поиска следующим образом

document.getElementById('issue-'+key); // get by issue
document.getElementById('client-'+key); // get by client

Это означает, что вы можете получить свой элемент в одном поиске и использовать getElementById, который является одним из самого быстрого методы. Кроме того, этот метод означает, что у браузеров предыдущего поколения не будет проблем с ключом, начинающимся с цифры, если вы захотите использовать правило CSS для стилизации элемента по-другому.

1
Paul S. 25 Янв 2013 в 00:27

getElementById () - возвращает ссылку на элемент по его идентификатору.

getElementsByClassName () - возвращает набор элементов, которые имеют все заданные имена классов. При вызове объекта документа выполняется поиск всего документа, включая корневой узел. Вы также можете вызвать getElementsByClassName для любого элемента; он будет возвращать только элементы, которые являются потомками указанного корневого элемента с заданными именами классов.

getElementsByTagName () - возвращает список элементов с указанным именем тега. Поддерево под указанным элементом ищется, исключая сам элемент. Возвращенный список является живым, что означает, что он автоматически обновляется с помощью дерева DOM. Следовательно, нет необходимости несколько раз вызывать element.getElementsByTagName с одним и тем же элементом и аргументами.

querySelectorAll () . Возвращает список элементов в документе (с использованием обхода в порядке предварительного порядка для узлов документа), которые соответствуют указанной группе селекторов. Возвращенный объект - это NodeList.

< EM> Шрифты

http://www.quirksmode.org/dom/w3c_core.html#gettingelements

https://developer.mozilla.org/en-US/docs/DOM/

0
Erick Ribeiro 25 Янв 2013 в 00:22