1

我没有找到任何示例如何使用 jQuery 读取不显眼的数据。例如下面

<a id="deleteFile" href="" data="123">Delete file</a>

我想data从元素中读取属性。怎么做?

4

4 回答 4

3

您应该使用data-*where*是您想要使用的密钥:

<a id="deleteFile" href="" data-file-id="123">Delete file</a>

然后你可以阅读:

$('#deleteFile').data('fileId');

您会注意到该属性已自动转换为该属性file-idfileId符合规范。还应注意,jquery 将尝试将值转换为其 javascript 本机类型。这意味着该访问的值将是一个 javascriptNumber而不是 s 字符串。如果您有前导0,这可能会产生影响,因为01将转换为1. 如果您明确需要将值作为字符串,请使用attr

$('#deleteFile').attr('data-file-id');

您还应该注意,在使用时,attr您按原样提供完整的属性名称,而不仅仅是 camelCase 中的数据属性名称。

于 2012-10-22T14:47:49.633 回答
1

最好的方法是只获取元素属性

$('#deleteFile').attr('data');

如果您使用新的 jquery 库版本(我相信高于 1.6),您还可以使用带有 jQ​​uery 的 HTML5 数据属性data()。将您的锚链接更改为类似

<a id="deleteFile" href="" data-fileid="123">Delete file</a>

那么你可以使用

$('#deleteFile').data('fileid');

但是不要互换使用它们,只使用一种方法,否则您以后可能会遇到问题,因为 jQuerysdata()只会读取数据属性然后将它们存储在内部缓存中。如果您通过 更改任何内容data(),则不会更改实际的标签属性含义data(),并且attr()此后将返回不同的结果

于 2012-10-22T14:46:42.303 回答
1

最好像这样定义数据属性:

<a id="deleteFile" href="" data-id="123">Delete file</a>

然后你可以阅读它:

var id = $('#deleteFile').data('id');

在这种情况下使用这并不是一个好主意attr

于 2012-10-22T14:47:22.757 回答
0

如果你想坚持你的编码,那么你可以试试这个

var a = $("#deleteFile").attr("data");

这是一个演示http://jsfiddle.net/Ht7Eg/3/

于 2012-10-22T14:52:07.157 回答