0

我正在尝试使用以下代码在我的页面上获取图像的数据属性,但它不起作用

var rand_el = $('img').get(Math.floor(Math.random() * $('img').length)).attr('data-id');

但我只得到以下控制台日志:

未捕获的类型错误:对象#<HTMLImageElement>没有方法“attr”

有任何想法吗?

4

3 回答 3

4

get返回一个 DOM 元素引用。用于eq将匹配元素集减少到指定索引处的元素,同时仍返回 jQuery 对象。

var rand_el = $('img').eq(Math.floor(Math.random() * $('img').length)).attr('data-id');
于 2012-08-20T17:04:59.680 回答
2

get方法返回包装的 DOM 元素,而不是 jQuery 对象。然而eq 方法返回一个 jQuery 对象。

于 2012-08-20T17:05:25.673 回答
0

发生这种情况是因为您有一个 javascript 对象而不是 jQ 对象。这应该适合你。

$($('img').get(Math.floor(Math.random() * $('img').length))).attr('data-id');
于 2012-08-20T17:07:24.297 回答