Подтвердить что ты не робот

Как я могу получить значение данных HTML как строку с jQuery?

В моем исходном HTML есть следующее:

<li><a href="#" data-value="01">Test</a></li>

Я хочу получить значение атрибута data, поэтому я использую следующее:

var abc = $(this).data('value');

Это работает нормально, но если нет начального нуля. Например, приведенное выше поместил значение "1" в abc.

Есть ли способ, которым я могу заставить его не преобразовывать "01" в "1"?

4b9b3361

Ответ 1

this.getAttribute('data-value')

Ответ 2

Вы можете использовать оператор attr() для jQuery:

var abc = $(this).attr('data-value');

Ответ 3

Из документации jQuery data(), кажется, что вы должны использовать .attr(), чтобы предотвратить автоматическое преобразование типов:

Производится попытка преобразования строки в значение JavaScript (это включает в себя логические значения, числа, объекты, массивы и нуль), в противном случае она остается в виде строки. Чтобы получить атрибут value как строку без какой-либо попытки его преобразования, используйте метод attr(). Когда атрибут data является объектом (начинается с '{') или массива (начинается с '['), тогда jQuery.parseJSON используется для синтаксического анализа строки; он должен следовать действующему синтаксису JSON, включая цитируемые имена свойств. Атрибуты данных вытаскиваются при первом доступе к свойствам данных, а затем больше не доступны или не изменяются (все значения данных затем сохраняются внутри jQuery).

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

var abc = $(this).attr('data-value');

Ответ 4

$(this).attr('data-value');

Это вернет строковое значение с ведущим 0.

Ответ 5

Вы пробовали?:

$(this).attr('data-value');

или

$(this).attr('data-value').toString();

Ответ 6

Попробуйте:

this.data('value');

Я думаю, что это лучший способ получить значение атрибута данных.