Javascript 使用jQuery获取数据属性

Javascript 使用jQuery获取数据属性,javascript,jquery,css,html,Javascript,Jquery,Css,Html,元素有一个数据id属性,我想使用jQuery检索该属性。我相信.data()函数可以做到这一点 $('.photo').get(0).data('id') 问题:当我尝试使用.data('id')检索属性时,我得到错误: Uncaught TypeError: Object #<HTMLImageElement> has no method 'data' uncaughttypeerror:对象#没有方法“data” 我哪里出错了 jsfiddle:您需要将数据用于jquer

元素有一个
数据id
属性,我想使用jQuery检索该属性。我相信
.data()
函数可以做到这一点

$('.photo').get(0).data('id')
问题:当我尝试使用
.data('id')
检索属性时,我得到错误:

Uncaught TypeError: Object #<HTMLImageElement> has no method 'data' 
uncaughttypeerror:对象#没有方法“data”
我哪里出错了


jsfiddle:

您需要将数据用于jquery对象,get(0)将返回元素

$('#result').html( $('.photo').data('id') );
$(function () {
    var photos = $('.photo');
    $('#result').html(photos.eq(0).attr('data-id'));
});
检查下面的小提琴


您需要将数据用于jquery对象,get(0)将返回元素

$('#result').html( $('.photo').data('id') );
$(function () {
    var photos = $('.photo');
    $('#result').html(photos.eq(0).attr('data-id'));
});
检查下面的小提琴

$('.photo').get(0)
将返回
HTMLImageElement
,而不是jQuery对象,因此它没有方法
.data

您应该只使用:
$('.photo').data('id')
$('.photo').get(0)
将返回
HTMLImageElement
,而不是jQuery对象,因此它没有方法
.data

您只需使用:
$('.photo').data('id')
使用.attr()函数即可。像

$('#result').html( $('.photo').attr('data-id') );
使用.attr()函数。像

$('#result').html( $('.photo').attr('data-id') );

正如其他人所说,您的问题是
.get(0)
,它返回HTML元素本身,而不是jquery对象。要获取某个元素,请使用
:eq
伪选择器,如:


正如其他人所说,您的问题是
.get(0)
,它返回HTML元素本身,而不是jquery对象。要获取某个元素,请使用
:eq
伪选择器,如:


在这种情况下,使用jQuery
.get()
需要使用
.eq()
。您还可以使用
.data()
,它用于在dom上存储数据。您需要使用
.attr()
,它允许您访问元素的属性

$('#result').html( $('.photo').data('id') );
$(function () {
    var photos = $('.photo');
    $('#result').html(photos.eq(0).attr('data-id'));
});

这应该对您起作用了:

使用jQuery
.get()
在这种情况下,您需要使用
.eq()
。您还可以使用
.data()
,它用于在dom上存储数据。您需要使用
.attr()
,它允许您访问元素的属性

$('#result').html( $('.photo').data('id') );
$(function () {
    var photos = $('.photo');
    $('#result').html(photos.eq(0).attr('data-id'));
});
现在,这应该适用于您:

  • 元素有两种类型。即DOM对象和jQuery对象
  • jQuery对象有
    data()
    方法,而像您的
    xx..get(0)
    这样的DOM对象没有方法
    data()
  • 因此,如果要使用
    data()
    方法,必须确保对象是jQuery对象
  • 元素有两种类型。即DOM对象和jQuery对象
  • jQuery对象有
    data()
    方法,而像您的
    xx..get(0)
    这样的DOM对象没有方法
    data()
  • 因此,如果要使用
    data()
    方法,必须确保对象是jQuery对象

  • $('#result').html($('.photo').data('id'))
    对我有用。
    $('#result').html($('.photo').data('id'))
    对我有效。或者,您可以使用
    first()
    从元素集中获取第一个元素<代码>$('.photo').first().data('id')
    。或者,您可以使用
    first()
    从元素集中获取第一个元素<代码>$('.photo').first().data('id')