Javascript DOM идентифицирует узлы по типу пользователя? - PullRequest
0 голосов
/ 15 марта 2012

Если у меня есть тело с несколькими дочерними узлами tr, как я могу дать каждому tr указанное пользователем значение, которое можно использовать для его идентификации?

Например, я хочу сделать что-то вроде:

mytr1 = mytbody.createElement('tr');
mytr2 = mytbody.createElement('tr');

mytr1.userident = 'firstname';
mytr2.userident = 'lastname';

tbody.appendChild(mytr1);
tbody.appendChild(mytr2);

Тогда у одного ребенка есть возможность получить доступ к своему брату, например:

mystr1.parentNode.getByUserident('lastname')

Я не хочу использовать идентификаторы, потому что объекты динамически создаются и уничтожаются, а имена недопустимы для элементов tr.

1 Ответ

3 голосов
/ 15 марта 2012

Вы можете использовать наборы данных.
Это HTML5, но он довольно поддерживается. Поддержка наборов данных

Вот как их использовать:

mytr1 = mytbody.createElement('tr');
mytr2 = mytbody.createElement('tr');

mytr1.dataset.userident = 'firstname';
mytr2.dataset.userident = 'lastname';

tbody.appendChild(mytr1);
tbody.appendChild(mytr2);


Для доступа к ним
подразумевается, что вы используете привязку и обработку событий:

var userident = evt.target.dataset.userident;


EDIT

На самом деле, сейчас он поддерживается всеми браузерами.
Единственная частично поддерживаемая часть - это доступ к свойству .dataset .
Просто используйте .getAttribute ('data-userident') и .setAttribute ('data-userident', 'firstname') для ваших элементов.

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