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>
È stato utile?

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());
});
Autorizzato sotto: CC-BY-SA insieme a attribuzione
Non affiliato a StackOverflow
scroll top