Ok, ho provato a fare ricerche, ma. Ho un compito, in cui ho bisogno di caricare alcuni js usando l'Ajax e così via. Per farla breve, ho bloccato.Fare clic per ottenere l'indice dell'elemento di matrice con jquery
Prima un codice script.js (che devo caricare e che non riesco a modificare):
var divs = [
'<div class="item">Lorem ipsum 0</div>',
'<div class="item">Lorem ipsum 1</div>',
'<div class="item">Lorem ipsum 2</div>',
'<div class="item">Lorem ipsum 3</div>',
'<div class="item">Lorem ipsum 4</div>',
'<div class="item">Lorem ipsum 5</div>',
'<div class="item">Lorem ipsum 6</div>',
'<div class="item">Lorem ipsum 7</div>'
];
delete(divs[3]);
Poi il mio script per caricarlo
$.getScript('script.js', function() {
$('.a').append('<div class="yep">' + divs.join('') + '</div>');
$('.item').each(function() {
$(this).click(function() {
console.log($('.item').index(this));
});
});
});
Il problema è che il fare clic su Ho bisogno di ottenere l'indice dell'elemento nell'array, cioè se clicco su "Lorem ipsum 4" la console dovrebbe stampare "4", non "3" come succede ora (a causa dell'elemento cancellato che non appare in dom). C'è un modo per ottenere il risultato giusto usando jQuery?
Ok, devo dire che è un compito. Ed ecco la cosa: non posso semplicemente modificare script.js. Diciamo che è sul server e non ho accesso ad esso fino a quando non capisco. Ma ho bisogno dell'indice di un elemento che ha nell'array originale.
Una possibile soluzione sarebbe quella di memorizzare l'indice con l'elemento div in un attributo di dati, ad esempio: '
Sì, è necessaria una soluzione alternativa. Perché il div è stato eliminato prima di eseguire un .each(); quell'elemento e il suo indice sono spariti. Dovresti salvarlo in un altro modo come con un attributo dati come menzionato sopra. – Syon
Non riesco a modificare il file script.js e non ho bisogno di rimuovere elementi dalla matrice. Ho bisogno di ottenere l'indice giusto solo – kibin