Frage

Frage:Wie konvertiere ich jeden Titel einzeln in ISO8601?

Ich versuche, die timeago JQuery-Bibliothek zu verwenden.Ich fülle den Titel mit der UTC-Zeichenfolge auf, daher muss ich den UTC-Attributtitel in ISO8601 konvertieren, bevor ich die Timeago-Bibliothek ausführe, andernfalls zeigt Safari/FF/IE nichts an.

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>

Ergebnisse

<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>

erwartete Ergebnisse

<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>
War es hilfreich?

Lösung

Ihr Code erfasst nur das title Attribut des ersten .timeago Element.

[jQuerys attr()][1] Methode „[ruft] den Wert eines Attributs für das erste Element in der Menge der übereinstimmenden Elemente ab oder [legt] ein oder mehrere Attribute für jedes übereinstimmende Element fest“ (Dokumente).

Verwenden jQuerys .each Methode wenn Sie eine Aktion ausführen möchten jede ausgewähltes Element in einer Menge:

$(".timeago").each(function() {
    var dateString = $(this).attr('title');
    var dateConvert = new Date(dateString);
    $(this).attr('title', dateConvert.toISOString());
});
Lizenziert unter: CC-BY-SA mit Zuschreibung
Nicht verbunden mit StackOverflow
scroll top