Работа с метаданными jQuery - невозможно прочитать атрибуты данных HTML5 - PullRequest
5 голосов
/ 23 февраля 2011

Я пытаюсь использовать атрибуты данных HTML5 и читать их с помощью плагина jQuery.

Прежде всего, имеет ли значение DOCTYPE в этом случае? (Меня не беспокоит проверка)

Вот что я пытаюсь сделать:

<ul id="quiz">
  <li data-career="math" class="first">
    <span>Question 1</span>
    <input type="radio" name="question1" />
    <input type="radio" name="question1" />
    <input type="radio" name="question1" />
  </li>
  <li data-career="science">
    <span>Question 2</span>
    <input type="radio" name="question2" />
    <input type="radio" name="question2" />
    <input type="radio" name="question2" />
  </li>
</ul>

Затем ЭТО выдает ошибку (a is undefined)

$.metadata.setType("html5");
$(document).ready(function() {
    var data = $("#quiz .first").metadata();
    console.log(data);
});

Также console.log(data.career) тоже не работает.

Я использую jQuery 1.4.2.

P.S. Метаданные теперь включены как часть jQuery?

Ответы [ 3 ]

11 голосов
/ 23 февраля 2011

По состоянию на 1.4.3 HTML 5 атрибут данных поддерживаются.

Из заметок о выпуске:

Например, с учетом следующего HTML:

<div data-role="page" data-hidden="true" data-options='{"name":"John"}'></div>

Весь следующий код jQuery будет работа.

$("div").data("role") === "page";
$("div").data("hidden") === true;
$("div").data("options").name === "John";
3 голосов
/ 23 февраля 2011

Вы используете 0.0.1 слишком старой версии:

Начиная с jQuery 1.4.3, атрибуты данных HTML 5 будут автоматически добавлены в объект данных jQuery.

Использование:

$('#quiz .first').data('career');

Что касается плагина метаданных, я не верю, что существует опция типа html5 - см. API .Я верю, что вы хотите:

$.metadata.setType('attr', 'data-career');
1 голос
/ 23 февраля 2011

Если вы не можете использовать последнюю версию jQuery (по какой-либо причине), вы все равно можете получить доступ к атрибутам с помощью метода .attr().

var data = $("#quiz .first").attr('data-career');
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...