我目前正在研究jQuery。我现在正在构建的是“twittler”,它使用jQuery和moment.js库。
我编写了以下代码,但创建twit的时间总是“几秒钟前”。有什么问题?
<script>
$(document).ready(() => {
let index = 0, lastIndex = streams.home.length;
let showTweet = () => {
for (; index < lastIndex; index++) {
let tweet = streams.home[index];
let $tweet = $(
`<div class="w3-card-4 w3-section">` +
`<footer class="w3-container w3-opacity w3-right-align">` +
`<h6 class="time" id="${tweet.created_at.getTime()}"></h6>` +
`</footer>` +
`</div>`
);
$tweet.prependTo($(".main-contents"));
}
};
let lastIndexUpdate = () => {
lastIndex = streams.home.length;
};
let timeUpdate = () => {
$("h6.time").text(moment($("h6.time").attr("id"), "x").fromNow());
};
showTweet();
setInterval(showTweet, 1000);
setInterval(lastIndexUpdate, 1000);
setInterval(timeUpdate, 1000);
});
</script>
答案 0 :(得分:1)
$("h6.time").attr("id")
将始终获得第一个匹配选择器的值。
您需要特定于实例的值
您可以使用text(function)
来揭示回调中的每个实例
$("h6.time").text(function(){
return moment(this.id, "x").fromNow();
});