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 № 1Você 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