我正在尝试通过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();
}
}
我的问题是,它不起作用!控制台不会抛出任何错误。我的代码出了什么问题?这背后的想法是在不重新加载页面的情况下阻止特定(不适当)的照片。
感谢任何帮助!
答案 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();
}
});
}