使用 jQuery 元数据 - 无法读取 HTML5 数据属性

发布于 2024-10-18 13:17:16 字数 1052 浏览 1 评论 0 原文

我正在尝试使用 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>

然后 THIS 抛出错误(a未定义)

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

另外 console.log(data.career) 也不起作用。

我使用的是 jQuery 1.4.2。

PS 现在元数据是否包含在 jQuery 中?

I'm trying to use HTML5 data- attributes and read them with the jQuery plugin.

First of all, does the DOCTYPE matter in this case? (I'm not worried about validation)

Here's what I'm trying to do:

<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>

Then THIS throws an error (a is undefined)

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

Also console.log(data.career) doesn't work either.

I'm using jQuery 1.4.2.

P.S. Is metadata now included as part of jQuery?

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(3

风筝在阴天搁浅。 2024-10-25 13:17:17

您使用的 0.0.1 版本太旧了:

从 jQuery 1.4.3 HTML 5 开始,数据 -
属性会自动
拉入 jQuery 的数据对象。

用法:

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

至于元数据插件,我不相信 html5 类型选项存在 - 请参阅 API。我相信你想要:

$.metadata.setType('attr', 'data-career');

You're using 0.0.1 of a version too old:

As of jQuery 1.4.3 HTML 5 data-
attributes will be automatically
pulled in to jQuery's data object.

Usage:

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

As for the metadata plugin, I don't believe the html5 type option exists - see API. I believe you want:

$.metadata.setType('attr', 'data-career');
心作怪 2024-10-25 13:17:17

如果您无法使用最新的 jQuery 版本(无论出于何种原因),您仍然可以使用 .attr() 方法访问属性。

var data = $("#quiz .first").attr('data-career');

If you aren't able to the use the latest jQuery version (for whatever reason) you can still access the attributes with the .attr() method.

var data = $("#quiz .first").attr('data-career');
世俗缘 2024-10-25 13:17:16

从 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";

As of 1.4.3 HTML 5 data attribute were supported.

From the release notes:

For example, given the following HTML:

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

All of the following jQuery code will
work.

$("div").data("role") === "page";
$("div").data("hidden") === true;
$("div").data("options").name === "John";
~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文