JQuery предоставлял уникальный номер для элементов DOM? - PullRequest
2 голосов
/ 14 сентября 2011

Я вспомнил, что был метод jquery, который предоставляет уникальный номер для элементов dom.Это возможно только для анимированных объектов dom.Теперь я не мог найти этот метод.Что это за метод?Есть ли другой способ предоставить уникальный номер для элементов?

Ответы [ 2 ]

2 голосов
/ 14 сентября 2011

Думаю, вы думаете о понятии jQuery.expando.Существует атрибут jQuery.expando, который существует на каждой странице, где работает jQuery.Это определяется так:

expando: "jQuery" + ( jQuery.fn.jquery + Math.random() ).replace( /\D/g, "" ),

Так что для меня на текущей странице это jQuery15209244967177268291.Любой элемент, в котором хранятся какие-либо данные (включая обработчики событий, которые хранятся в виде данных), имеет свойство с таким именем.Он содержит уникальный номер, который является ключом для этого элемента в глобальном кэше данных.

Например, с глобальным входящим почтовым ящиком StackExchange в левом верхнем углу экрана:

$('.genu')[0].jQuery15209244967177268291 === 29

Вы можете имитировать это с помощью $('.genu')[0][jQuery.expando];Я не уверен, что вы получите тот же номер.(Изменить: для меня это даже не одно и то же число каждый раз.)

Обратите внимание, однако, что не каждый элемент имеет уникальный номер, только те, к которым прикреплены данные.Это может или не может соответствовать вашим целям ...

0 голосов
/ 14 сентября 2011

Единственное, что удаленно похоже на то, что вы могли бы получить, это jQuery.unique () , но даже это не делает то, что вы предлагаете. Я бы посоветовал вам обновить ваш вопрос, указав цель для этого, так как может быть лучший способ решить проблему, которая побуждает вас получать уникальные номера для каждого элемента.

...