0
jsonファイルに格納されているオブジェクトの配列があり、各オブジェクトはid
です。IDを使用して同じオブジェクトを画面上に複製しないようにするにはどうすればよいですか?
[
{
"time": "1500058550",
"id": 1
},
{
"time": "1500058551",
"id": 2
}
]
およびファイルから私のjs
ロードメッセージ、たとえば、5秒ごとに(と、それを表示する)新しいオブジェクトが添加することができるので。しかし、ファイルからのダウンロードは、両方の(新しいものと古いもの)オブジェクトがロードされるように行われます。オブジェクトがすでにロードされているかどうかを確認するには、どうすればid
をチェックできますか?
callback(
[{
"time": "1500064939",
"id": 1
},
{
"time": "1500064940",
"id": 2
}
]);
function callback(respond) {
setTimeout(function tick() {
var timeNow = Date.now();
for (var i = 0; i < respond.length; i++) {
var data = respond[i];
var timeInMessage = data.time * 1000;
var diff_time = (timeNow - timeInMessage);
if (diff_time <= 36000000) {
var newDate = new Date(timeInMessage);
var res = [newDate.getHours(), newDate.getMinutes(), newDate.getSeconds()].map(function(x) {
return x < 10 ? "0" + x : x;
}).join(":");
var rowClone = $('.mess_hide').clone().removeClass('mess_hide');
$('#messages').append(rowClone);
$('.time', rowClone).html(res);
}
}
setTimeout(tick, 5000);
}, 1);
}
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>
<div class="scroller">
<table id="messages">
<tr class="mess_hide">
<td class="time"></td>
</tr>
</table>
</div>
どう私は、このチェックを実装していますか?私はこれをする方法を知らない、助けてください。
は、あなただけの、すでに追加されたIDの配列を持つことができますか?それが既にある場合はそれを追加しないでください。 –
jqueryを使用すると、各divに '.attr( 'id'、data.id ');' – lloyd
@lloydを使用してIDを渡すことは悪い考えで、ビューの代わりに実際のデータに頼っている方が良いでしょう – webdeb