我正在尝试使用以下代码在我的页面上获取图像的数据属性,但它不起作用
var rand_el = $('img').get(Math.floor(Math.random() * $('img').length)).attr('data-id');
但我只是得到以下控制台日志:
未捕获的TypeError:对象
#<HTMLImageElement>
没有方法'attr'
有什么想法吗?
答案 0 :(得分:4)
get
返回DOM元素引用。使用eq
将匹配元素集合减少到指定索引处的元素,同时仍返回jQuery对象。
var rand_el = $('img').eq(Math.floor(Math.random() * $('img').length)).attr('data-id');
答案 1 :(得分:2)
get
method返回包装的DOM元素,而不是jQuery对象。 eq method返回一个jQuery对象。
答案 2 :(得分:0)
这是因为你有一个javascript对象而不是一个jQ对象。这对你有用。
$($('img').get(Math.floor(Math.random() * $('img').length))).attr('data-id');