Converti ciascun titolo <attr> in ISO8601, separatamente
-
21-12-2019 - |
Domanda
Domanda:Come faccio a convertire ciascun titolo individualmente in ISO8601
Sto cercando di utilizzare la libreria JQuery di Timeago.Popolo il titolo con la stringa UTC, quindi devo convertire il titolo attr UTC in ISO8601 prima di eseguire la libreria Timeago, altrimenti Safari/FF/IE non mostra nulla.
JQuery
var dateString = $('.timeago').attr('title');
var dateConvert = new Date(dateString);
$('.timeago').attr('title', dateConvert.toISOString());
HTML
<abbr class="timeago" title="Sun, 30 Jul 2014 15:06:00 -0500"></abbr>
<abbr class="timeago" title="Sun, 30 Jul 2014 14:45:00 -0500"></abbr>
Risultati
<abbr class="timeago" title="2014-07-30T20:06:00.000Z">3 minutes ago</abbr>
<abbr class="timeago" title="2014-07-30T20:06:00.000Z">3 minutes ago</abbr>
risultati aspettati
<abbr class="timeago" title="2014-07-30T20:06:00.000Z">3 minutes ago</abbr>
<abbr class="timeago" title="2014-07-30T19:45:00.000Z">24 minutes ago</abbr>
Soluzione
Solo il tuo codice sta catturando il file title
attributo del primo .timeago
elemento.
[jQuery attr()][1]
metodo "[ottiene] il valore di un attributo per il primo elemento nell'insieme di elementi corrispondenti o [imposta] uno o più attributi per ogni elemento corrispondente" (documenti).
Utilizzo jQuery .each
metodo se vuoi eseguire un'azione su ogni elemento selezionato in un set:
$(".timeago").each(function() {
var dateString = $(this).attr('title');
var dateConvert = new Date(dateString);
$(this).attr('title', dateConvert.toISOString());
});