我正在尝试从元素中包含的两个数据属性中获取值。 如果我使用:
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(),这样我的代码就更清晰了?
答案 0 :(得分:2)
将其视为对象,data.sql
,data.direction
但是请注意,这只会从第一个选定的元素中获取数据。如果您想要全部数据,则必须使用迭代函数,例如for loop
,while loop
,$.each
,$().each
,$.map
,或$().map
。
var data = $('tr th', a).map(function(){
return $(this).data();
}).get();
console.log(data[0].sql);