1

要素内に含まれる2つのデータ属性から値をフェッチしようとしています。私が使用する場合:

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+'", ' ;
    })

.attr()を使用する代わりに、.data()だけを使用して2つの値をフェッチして、コードをよりクリーンにするにはどうすればよいですか?

4

1 に答える 1

2

オブジェクトのように扱う、data.sqldata.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);
于 2012-11-13T16:52:12.497 に答える