Javascript , JQ 数据类型冲突

标签 javascript jquery backbone.js

我有一个看起来像这样的元素列表

<li class="depuy">
    <a class="comp" data-color="#66" href="#">
        Something
    </a>
</li>

在 Backbone 渲染中,我想为这些取自其数据属性的元素添加背景色。我试着这样做

var som_array = $(".com a");
var som_array_length = som_array.length;
for(var i=0;i<som_array_length;i++)
{
    var som_object = som_array[i].data("color");
    console.log(som_object);
}

但在控制台中,我收到此消息 Uncaught TypeError: Object [object HTMLAnchorElement] has no method 'data' 但如您所见,它有。可能是什么问题?

最佳答案

这是因为当您使用它的索引访问 jQuery 对象中的项目时,您访问的是实际项目,而不是包含 data 方法的 jQuery 对象。

试试这个:

$(".depuy a").each(function() {
    console.log($(this).data('color'));
});

关于Javascript , JQ 数据类型冲突,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/18352903/

相关文章:

jQuery - 如何获取元素相对于其选择的索引(而不是其父元素)

jQuery 验证和类似数组的命名输入

javascript - 带有凭据的背景网格分页器

javascript - Angular2 : TestApp not working in LightTable. 错误 : UncoatedModuleInstantiator. getUncoatedModule

php - 如何使用 PHP 从 HTML 中提取特定内容?

javascript - 钛加速器窗口的正确打开方式是什么?

android - 未知 Chrome 错误 : -6 (jquery mobile)

javascript - 未捕获的类型错误 : Cannot read property 'EventAggregator' of undefined (Backbone, Marionette,RequireJS)

javascript - 覆盖 Backbone.sync 但保留其以前的功能

javascript - 为什么 scrollHeight、clientHeight 和 offsetHeight 都返回相同的值?