2012-11-14 36 views
2

我試圖通過選擇其data-id屬性並隱藏照片來動態地隱藏頁面上的特定照片,通過Javascript。這是通過Ajax從TXT文件中獲取ID,將它們分解爲一個數組,然後使用jQuery來隱藏具有該ID的img來實現的。請注意,此功能目前正在通過每3秒的setInterval過去了......使用Javascript和陣列的問題

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

我的問題是,它不工作!沒有錯誤從控制檯拋出。我的代碼有什麼問題?這背後的想法是阻止特定的(不適當的)照片,而無需重新加載頁面。

任何幫助表示讚賞!

+1

你有沒有使用螢火蟲(或其他調試器),看看這是怎麼回事?這應該是第1步。 – jahroy

+0

您可以嘗試使用不帶引號的屬性選擇器,例如:'tim.tweetphoto [data-id = foo]' – Nippey

回答

1

你確定要在for循環中使用stringData而不是blockedArray嗎?如果是這樣,也將分配更改爲長度。

我的版本看起來是這樣的:

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