我有一堆<p>
标签,每个标签里面都有一个日期。现在我想使用momentjs
将它们翻译成另一种格式,但它并没有真正起作用。
<div class="container">
<p class="ordered">2018-10-01</p>
<p class="ordered">2018-10-02</p>
<p class="ordered">2018-10-03</p>
</div>
和我的 js 文件:
$(".ordered").each(item => {
let formatted_order_date = moment(item).locale("de").format("Do MMM");
});
这是一个JSFIDDLE
那么,有人可以告诉我这里的问题是什么吗?
示例中的项目不是日期字符串,而是索引。
每个回调有两个参数:索引和项目(作为第二个(:each((i,item) ...
然后,该项目是完整的 html 元素,因此我们需要从中获取"值"(内部 html(:$(item).html()
$(".is-ordered").each((i,item) => {
// console.log($(item).html());
let datestring = $(item).html();
let formatted_order_date = new moment(datestring)
.locale("de")
.format("Do MMM");
console.log(formatted_order_date); // 3rd Oct
});
不要使用item
,请尝试使用$(this)
。
$(".ordered").each(() => {
const formatted_order_date = moment($(this).text().trim()).locale("de").format("Do MMM");
$(this).text(formatted_order_date);
});