我没有找到如何使用jQuery读取不显眼的数据的任何示例。例如下面
<a id="deleteFile" href="" data="123">Delete file</a>
我想从元素中读取data
属性。怎么做?
答案 0 :(得分:3)
您应该使用data-*
,其中*
是您想要使用的密钥:
<a id="deleteFile" href="" data-file-id="123">Delete file</a>
然后你可以阅读:
$('#deleteFile').data('fileId');
您会注意到该属性已从file-id
转换为fileId
,这会自动发生以符合规范。还应该注意的是,jquery将尝试将值转换为其javascript本机类型。这意味着该访问的价值将是javascript Number
而不是s字符串。如果您有一个前导0
,并且因为01
将被转换为1
,则会产生影响。如果您明确需要将值作为字符串,请使用attr
:
$('#deleteFile').attr('data-file-id');
您还应该注意,使用attr
时,您可以按原样提供完整的属性名称,而不仅仅是camelCase中的数据属性名称。
答案 1 :(得分:1)
最好的方法是获取元素属性
$('#deleteFile').attr('data');
如果你使用新的jquery库版本(高于1.6 i),你也可以使用jQuery的data()
HTML5数据属性。将您的锚链接更改为
<a id="deleteFile" href="" data-fileid="123">Delete file</a>
然后你可以使用
$('#deleteFile').data('fileid');
但是不要互换使用它们,只能使用一种方法,否则稍后可能会出现问题,因为jQuerys data()
只会读取数据属性,然后将它们存储在内部缓存中。如果您通过data()
更改任何内容,则不会在实际标记属性中更改,data()
和attr()
将在此后返回不同的结果
答案 2 :(得分:1)
最好像这样定义数据属性:
<a id="deleteFile" href="" data-id="123">Delete file</a>
然后你可以阅读它:
var id = $('#deleteFile').data('id');
在这种情况下使用attr
并不是一个好主意。
答案 3 :(得分:0)