Jqueryを使用してオブジェクトの.data()または.attr()を選択した後、それらにアクセスできないのはなぜですか?
ここに問題があります。特定のクラスが割り当てられたdivのグループがあります。Jqueryを使用してすべてのdivを選択し、それらを配列に割り当ててから、配列を解析し、それぞれのデータ属性を調べて特定の値を見つけたいと思います。
<div class="Divs" data-eventid="1"></div>
<div class="Divs" data-eventid="2"></div>
<div class="Divs" data-eventid="3"></div>
以下は、セレクターに一致する要素のリストを取得し、それらをイベントに割り当てます。
var events = [];
$('.Divs').each(function () {
events.push($(this));
});
変数{n1、n2、n3}は、説明の理由で分類されています
$.each(events, function(idx, val){
var n1 = events[idx];
var n2 = n1[0];
var n3 = n2.data(); // **.data() is Undefined
});
配列を解析しようとして、.data()または.attr()がサポートされていない/未定義であると表示された場合はどうなりますか?
しかし、私が次のことをすればそれはうまくいきます
$('.Divs').each(function () {
var getIdValue = $(this).attr('eventid'); // Works;
var getIdValue2 = $(this.data('eventid'); // works;
)};
一方が機能し、もう一方が機能しない理由を知りたかっただけです。
これをチェックして:
そのはず : var n3 = $(n2).data();
これは、がをn2
参照しているためdiv
です。を取得するには、jQuery参照を使用する必要がありますdata()
。
あなたがフィドルを実行するとき、コンソールをチェックしてください..あなたはより多くのアイデアを得るでしょう。
この記事はインターネットから収集されたものであり、転載の際にはソースを示してください。
侵害の場合は、連絡してください[email protected]
コメントを追加