Вопрос

Вопрос:Как мне преобразовать каждый заголовок по отдельности в ISO8601

Я пытаюсь использовать библиотеку timeago jQuery.Я заполняю заголовок строкой UTC, поэтому мне нужно преобразовать заголовок UTC attr в ISO8601 перед запуском библиотеки Timeago, иначе Safari/FF/IE ничего не покажет.

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>

Результаты

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

Ожидаемые результаты

<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>
Это было полезно?

Решение

Ваш код только захватывает title атрибут первого .timeago элемент.

[jQuery's attr()][1] метод "[получает] значение атрибута для первого элемента в наборе совпадающих элементов или [устанавливает] один или несколько атрибутов для каждого совпадающего элемента" (доктора).

Воспользуйся jQuery - это .each метод если вы хотите выполнить какое-либо действие над каждый выбранный элемент в наборе:

$(".timeago").each(function() {
    var dateString = $(this).attr('title');
    var dateConvert = new Date(dateString);
    $(this).attr('title', dateConvert.toISOString());
});
Лицензировано под: CC-BY-SA с атрибуция
Не связан с StackOverflow
scroll top