【发布时间】:2015-12-26 09:53:57
【问题描述】:
为了不使 html 文件太重,并且为了简单快速地阅读 porpuses,我想“动态”创建 img 元素,但前提是它们存在于服务器中,这就是我所期望的结果,所以我在这里尝试了两种解决方案:Questionerror() mehode 的解决方案不起作用:Demo
控制台说$(...).error不是函数,我不知道为什么
我尝试使用标志
$('ul').each(function() {
for (i = 2; i < 10; i++) {
var flag = true
image = new Image()
image.src = $(this).find('img').attr('src').replace(/\d/, i)
$(image).error(function() {
flag = false
})
if (flag /*or i can just write: flag==true*/ ) {
//do nothing
} else {
$(this).append('<li>' + $(image) + '</li>')
}
//or just => flag ? return : $(this).append('<li>' + $(image) + '</li>')
}
})
但它不适用于我尝试的所有选项
我也尝试不使用.error() 而只使用if(image.width!=0) 或if($(image).width()!=0) 但它们都不起作用,当我尝试在控制台中获取宽度时,它显示为0(对于第一个选项)或未定义
Ajax 的第二种解决方案也不起作用:Demo
我不知道 success 是否是正确使用的参数,我检查了 jquery 网站中的文档,这是唯一对我有意义的参数
我觉得我做错了很多,请指导我
提前致谢
【问题讨论】:
-
您忘记了
var用于i和image。不要创建全局变量:) -
对于
i?我没有名为i的变量 -
在你的
for循环中这样做。