1

質問: 各タイトルを個別に ISO8601 に変換するにはどうすればよいですか?

timeago JQuery ライブラリを利用しようとしています。タイトルに UTC 文字列を入力するため、Timeago ライブラリを実行する前に UTC 属性のタイトルを ISO8601 に変換する必要があります。そうしないと、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>
4

1 に答える 1

1

あなたのコードは、最初の要素のtitle属性のみを取得しています。.timeago

[jQuery のattr()][1]メソッド「[取得] 一致した要素のセットの最初の要素の属性の値、または [セット] 一致したすべての要素の 1 つ以上の属性」 ( docs )。

.eachセット内の選択された各要素に対してアクションを実行する場合は、jQuery のメソッドを使用します。

$(".timeago").each(function() {
    var dateString = $(this).attr('title');
    var dateConvert = new Date(dateString);
    $(this).attr('title', dateConvert.toISOString());
});
于 2014-07-30T20:33:43.437 に答える