2017-06-30 6 views
1

これは私の最初の質問であり、私はjavascript/jqueryで新人だから意味があることを願っています。だから、すべての要素にセレクタから含める属性のすべての値をどのように取得しますか?

ページでは、私は、属性のデータ値 'でページ上のすべての要素を選択するには、いくつかのjavascript $('[data-value]')を持ってロードされたら、私は、カスタム属性data-value=<?php echo $value ?>

で要素の変化量を持っています。すべての関連要素を含む配列を返します。それから私は$('[data-value]').data('value')で値を取得しようとしました。さて、これは正しい結果を返している間に、それが出現する最初の要素に対してのみ戻します。私は$('[data-value]')[num].data('value')とコードを反復しようとしました。ここで、「num」はゼロと配列の長さの間です。これは悲しいことですが、うまくいきませんでした。

選択したすべての要素に含まれる特定の属性の値をすべて取得する方法はありますか?

答えて

1

はあなたの要素を反復処理する​​3210メソッドを使用することができます。あなたがしようとしているよう

$('[data-value]').each(function() { 
    console.log($(this).data('value'); 
} 

また、簡単な変更で、forループを使用することができます。 $('[data-value]')[num]を実行すると、実際にはjQueryオブジェクトではなくネイティブ要素が取得されるため、.data()は使用できなくなります。これを修正するには、jQueryオブジェクトで要素を再ラップすることができます。 $($('[data-value]')[num]).data('value')

+0

ありがとう、これは私のためにうまくいっていますし、ネイティブ要素を再ラップすることについての余分な情報も非常に役に立ちました –

3

選択されたすべての要素の値を取得するには、リストをループする必要があると、このように、これらの値を選ぶ:

var values = $("[data-value]").map(function(i, el) { 
    return el.data('value'); 
}); 

console.log(values); 

役に立てば幸い!

1

あなたはこのような何かを行うことができます。

$('[data-value]').each(function(){ 
    console.log($(this).data('value')); 
}); 
関連する問題