/ / Get atributo de dados do elemento encontrado em get () - jquery, custom-data-attribute

Obter o atributo de dados do elemento encontrado com get () - jquery, custom-data-attribute

Sinto que estou perdendo algo completamente e não consigo descobrir o quê. Tento obter o atributo de dados de um item especificado com um índice por meio de .get (). No entanto, não consigo fazê-lo:

var int = 1,
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>

O que estou perdendo aqui? Por que isso acontece?

Respostas:

1 para resposta № 1

Você tem que usar dataset neste contexto,

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

Porque node O objeto não possui um método chamado data() em seu protótipo. Essa é uma função que pertence ao objeto jquery.

Se você quiser viajar com o jquery nessa situação, precisará usar .eq()

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

Basicamente .get(1) extrairá o segundo elemento como um objeto de nó da coleção jquery, enquanto .eq(1) você receberá o segundo elemento como um objeto jquery