1

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

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() 来获取这两个值,以便我的代码更干净?

4

1 回答 1

2

把它当作一个物体data.sql,,data.direction

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

var data = $('tr th', a).map(function(){
    return $(this).data();
}).get();
console.log(data[0].sql);
于 2012-11-13T16:52:12.497 回答