不从data-x标记获取值

时间:2012-11-13 16:50:42

标签: jquery json html5 loops attributes

我正在尝试从元素中包含的两个数据属性中获取值。 如果我使用:

data = $('tr th', a).data() ;

然后尝试使用以下方式获取:

data[0] // This works.
data[1] // Comes out as undefined.

以下是我的脚本执行此操作的部分,目前正在使用,因为我使用.attr()来获取值:

$('tr th', a).each(function(){
        sql = $(this).attr('data-sql') ;
        dir = $(this).attr('data-direction') ;

        if(sql)
        {
            JSONCols += '"'+sql+'", ' ;
        }
        if(!dir)
        {
            dir = '' ;
        }
        JSONDirs += '"'+dir+'", ' ;
    })

如何使用.data()来获取这两个值,而不是使用.attr(),这样我的代码就更清晰了?

1 个答案:

答案 0 :(得分:2)

将其视为对象,data.sqldata.direction

但是请注意,这只会从第一个选定的元素中获取数据。如果您想要全部数据,则必须使用迭代函数,例如for loopwhile loop$.each$().each$.map,或$().map

var data = $('tr th', a).map(function(){
    return $(this).data();
}).get();
console.log(data[0].sql);