Javascript For和Arrays的问题

时间:2012-11-14 06:52:14

标签: javascript ajax

我正在尝试通过Javascript动态隐藏页面上的特定照片,方法是选择他们的data-id属性并隐藏照片。这是通过Ajax从TXT文件中获取ID,将它们拆分为数组,然后使用jQuery隐藏带有该ID的img来实现的。请注意,此函数每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();
            }
    }

我的问题是,它不起作用!控制台不会抛出任何错误。我的代码出了什么问题?这背后的想法是在不重新加载页面的情况下阻止特定(不适当)的照片。

感谢任何帮助!

2 个答案:

答案 0 :(得分:1)

你确定要在for循环中使用stringData而不是blockArray吗?如果是这样,也将分配更改为长度。

我的版本看起来像是:

     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();
        }
}

答案 1 :(得分: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();
        }
    });
}