Javascript-форум (https://javascript.ru/forum/)
-   Общие вопросы Javascript (https://javascript.ru/forum/misc/)
-   -   this.rel работает, а this.data-rel нет... (https://javascript.ru/forum/misc/36820-rel-rabotaet-data-rel-net.html)

vladikas 28.03.2013 14:58

this.rel работает, а this.data-rel нет...
 
В библиотеке Thickbox 3.1 для группировки объектов используется атрибут rel в теге гиперссылки. Валидацию w3c не проходит. Хотел переделать библиотеку, чтоб вместо атрибута rel был data-rel, но в строчке кода:
var g = this.data-rel || false;

...происходит ошибка.

Как быть?

rgl 28.03.2013 15:01

то, что справа от точки, должно быть правильным идентификатором, а минус там не разрешается, только буквы, цифры, знак подчеркивания и доллар (прчем начинаться не с цифры).

rgl 28.03.2013 15:06

Я вообще-то не в теме, поэтому заранее извиняюсь чушь говорю, но можно попробовать пользоваться скобочной нотацией this["data-rel"] или методом getAttribute

vladikas 28.03.2013 15:07

Я знаю это. Я спрашиваю как быть?
html5 позволяет пользовательские данные хранить только в атрибутах data-*

vladikas 28.03.2013 15:10

Syntax error at line 22 while loading: expected identifier, got '['
	var g = this.["data-rel"] || fals
	-------------^

tenshi 28.03.2013 15:23

this.dataset.rel

rgl 28.03.2013 15:23

Цитата:

Сообщение от rgl (Сообщение 243125)
... можно попробовать пользоваться скобочной нотацией this["data-rel"] ...

без точки
this /*тут нет точки*/ ["data-rel"]

vladikas 28.03.2013 15:26

var g = this.getAttribute("data-rel") || false;

Так заработало. Спасибо.

vladikas 28.03.2013 15:26

Цитата:

Сообщение от rgl (Сообщение 243131)
без точки
this /*тут нет точки*/ ["data-rel"]

Без точки тоже не работало. Но и не ругалось.

vladikas 28.03.2013 15:29

var g = this.dataset.rel || false;

Так тоже работает. Пусть так и остаётся.

danik.js 28.03.2013 19:11

Цитата:

Сообщение от vladikas
Так тоже работает. Пусть так и остаётся.

В IE8 не будет работать, если это важно. Вариант с чтением атрибута будет работать везде.

tenshi 29.03.2013 16:42

для ie8 наверняка есть полифил


Часовой пояс GMT +3, время: 19:59.