Уникальный идентификатор для элементов HTML

Кроме того, идентификатора, если Вы говорите, Вы хотите уникальный идентификатор для элемента HTML (позвольте, говорят что отделение).

Я просмотрел DOM для чего-то (как число или строка), который уникален для каждого элемента; но DOM является большим, и мне не удалось найти это в Интернете.

Есть ли свойство (в DOM, очевидно), который уникален только для того элемента? (Кроме идентификатора и также Вы не указываете его, но прибывает, когда DOM создается),

25
задан Deduplicator 1 February 2015 в 16:28
поделиться

3 ответа

Как говорит Пекка, было бы проще, если бы вы описали, что вы хотите сделать. До тех пор вот два предложения.

Если вам не нужно выражать id в виде строки, вы можете сохранить обычную ссылку DOM.

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

var getId = (function () {
  var incrementingId = 0;
  return function(element) {
    if (!element.id) {
      element.id = "id_" + incrementingId++;
      // Possibly add a check if this ID really is unique
    }
    return element.id;
  };
}());
17
ответ дан 28 November 2019 в 21:47
поделиться

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

Например, ссылка заголовка внутри заголовка этой самой страницы имеет XPath

/html/body/div[3]/div[2]/div/h1/a

. Но, как уже сказал Пекка, это зависит от того, что вы хотите сделать. И я не думаю, что вы можете легко получить Xpath из DOM в JavaScript, несмотря на то, что Xpath сейчас доступен в JS-движках.

4
ответ дан 28 November 2019 в 21:47
поделиться

Существует атрибут name , который может быть адресован document.getElementByName .

Я не думаю, что существуют другие уникальные идентификаторы - даже если вы можете имитировать один, установив для свойства (например, title ) уникальное значение, а затем запросив его. Но это глупо.

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

2
ответ дан 28 November 2019 в 21:47
поделиться
Другие вопросы по тегам:

Похожие вопросы: