2016-12-04 13 views
0

いくつかの記事をスクロールするとURLslocalStorageに保存します。今まで私が見たのと同じコードを使って、私はそれをやっていましたが、私がすでに見たのと同じ記事に出会ったときに、URLをもう一度保存します。私は特定の記事のURLは、すでに再び追加を停止するlocalStorageに設定されているかどうかを確認するためにそこにif url !== data条件を設定新しいデータのみをlocalStorageに保存する

var i = 0; 
$(window).on('scroll', function() { 
    if (!localStorage.getItem('names')) { 
    var data = []; 
    } else { 
    var data = JSON.parse(localStorage.getItem('names')); 
    } 
    var x = $("article"); 
    var url = x.eq(i).attr("data-entry-url"); 
    data.push(url); 

    if ($(window).scrollTop() >= x.eq(i).offset().top && url !== data) { 

    localStorage.setItem("names", JSON.stringify(data)); 
    console.log(data); 

    i++; 
    } 
}); 

が、動作していない:

は、ここに私のコードです。それ以外はどうすればいいですか?

+0

URLにデータがあるかどうかを調べるには、data.indexOf(url)を試してください。 [Array.indexOf](https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Array/indexOf) – RamblinRose

+0

'data.indexOf(url)'を試してみました。どちらも働いていない.. – EddNewGate

答えて

0

urlは文字列型であり、比較するとdataは配列型ではありません。だから、if(url == data[0])をシングルURLと比較するか、またはデータ配列内のすべてのURLを確認する場合はif(data.indexOf(url) >= 0)に従ってください。 試してみてください。

0

データは配列であるので、配列を使用して配列をループし、それをURLと比較する必要があります。 サンプルコードの説明が必要な場合はお知らせください

関連する問題