2

data-id 属性を選択して写真を非表示にすることで、Javascript を使用してページ上の特定の写真を動的に非表示にしようとしています。これは、Ajax が TXT ファイルから ID を取得し、それらを配列に分割し、jQuery を使用してその ID の画像を非表示にすることで実現されています。この関数は 3 秒ごとに setInterval を通過していることに注意してください...

    function getBlockedIDs() {
            var stringData = $.ajax({
                    url: "http://s61892.gridserver.com/zone/twitter2/blocked.txt",
                    async: false
            }).responseText;
            var blockedArray = new Array();
            blockedArray = stringData.split(",");
            var length = stringData.length
            for (var i = 0; i < length; i++) {
                    $('img.tweetphoto[data-id="' + stringData[i] + '"]').hide();
            }
    }

私の問題は、それが機能していないことです!コンソールからエラーはスローされません。私のコードの何が問題になっていますか? この背後にある考え方は、ページをリロードせずに特定の (不適切な) 写真をブロックすることです。

どんな助けでも大歓迎です!

4

2 に答える 2

1

ブロックされた配列ではなく、for ループ内で stringData を使用してもよろしいですか? その場合は、割り当ても長さに変更します。

私のバージョンは次のようになります:

     function getBlockedIDs() {
        var blockedArray = $.ajax({
                url: "http://s61892.gridserver.com/zone/twitter2/blocked.txt",
                async: false
        }).responseText.split (/\s*,\s*/);
        for (var i = blockedArray.length; i--;) {
                $('img.tweetphoto[data-id="' + blockedArray[i] + '"]').hide();
        }
}
于 2012-11-14T06:56:21.413 に答える
0

私は次のようなことをします:

function getBlockedIDs() {
    $.get("http://s61892.gridserver.com/zone/twitter2/blocked.txt", function(stringData) {
        var blockedArray = stringData.split(/\s*,\s*/);
        for (var i = 0; i < blockedArray.length; i++) {
            $('img.tweetphoto[data-id="' + blockedArray[i] + '"]').hide();
        }
    });
}
于 2012-11-14T07:09:18.823 に答える