我使用以下代码搜索图像,然后将链接存储到textarea。
但是有一个问题,我不知道如何解决它。只有在我允许alert
显示时才有效。
var links = '' , file = '' , img_exist = '';
$('a:has(img)').filter(function() {
return $(this).attr('href').match(/(jpg)$/);
}).each(function(){
file = $(this).attr('href');
$.ajax({
url:file,
type:'HEAD',
error: function(){
img_exist = false;
},
success: function(){
img_exist = true;
}
});
//alert('WTH?');
if ( img_exist == true ){
links = links + file + '\n';
}
});
$('#sfi_link').val(links);
答案 0 :(得分:2)
您的if
语句在浏览器发送后立即执行。
它不等待响应,因为AJAX是异步。
您必须将links = links + file + '\n';
放入success
回调中。
答案 1 :(得分:0)
问题是您使用异步调用作为ajax请求。
之后发生异步回调if ( img_exist == true ){
links = links + file + '\n';
}
所以我的建议是将此代码放入success
函数。