2016-03-26 7 views
2

何かが完全に不足しているように感じ、何が分かりません。 .get()を使ってインデックスで指定されたアイテムのデータ属性を取得しようとしています。しかし、私はそうするように見えることはできません。get()で見つかった要素からデータ属性を取得

var int = 1, 
 
\t \t selector = $("a"); 
 
    
 
console.log(selector.get(int)); 
 
console.log(selector.get(int).data("banana")); // Uncaught TypeError: selector.get(...).data is not a function 
 
console.log(selector.get(int)[0].data("banana")); // Uncaught TypeError: selector.get(...).data is not a function
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script> 
 
<a href="#" data-banana="5">Hello</a> 
 
<a href="#" data-banana="2">there</a>

私はここで何をしないのですか?なぜこれが起こるのですか?

答えて

1

あなたはnodeオブジェクトがそのプロトタイプでdata()というメソッドを持っていないので、この文脈で

console.log(selector.get(int)[0].dataset.banana); 

datasetを使用する必要があります。これはjqueryオブジェクトに属する関数です。

あなたはこのような状況ではjQueryと一緒に旅行したいなら、あなたは.eq(1)はあなたを取得するのに対し、基本的に.get(1)は、jqueryのコレクションからノードオブジェクトとして第二の要素を抽出します.eq()

console.log(selector.eq(0).data("banana")); 

を使用する必要がありますjqueryオブジェクトとしての2番目の要素

関連する問題