在下面的代码中,最后一行没有设置src属性。为什么呢?
$("div.galerina").each(function(){
var gal=$(this);
var bullet=gal.children("img.galerina1");
var width=12*(gal.children("img").size())+'px';
gal.children("p").css({width:width})
gal.children("img").each(function(){
var img=$(this);
gal.children("p").append("<img class='bullet' src='images/bullet1.png'></img>");
$("img.bullet").last().click(function(){
bullet.animate({opacity:0},300,function(){
bullet.css({display:'none'});
bullet=img;
img.css({display:'block'});
img.animate({opacity:1},300);
});
})
})
gal.children("img.bullet").first().attr("src","images/bullet2.png")
})
答案 0 :(得分:2)
除非你在其他地方创造了gal,否则它超出了范围。您可以在每个函数的第一个函数内部创建一个var gal,但这是每个函数的本地函数。
gal很可能在外面未定义。因此,只需将第一个()。attr ....行放在每个函数的外部。
答案 1 :(得分:2)
gal
不在范围内。
您需要在传递给$("div.galerina").each()
的函数中移动最后一行,或者在使用之前重新初始化gal
:
$("div.galerina").each(function() {
var gal = $(this);
gal.children("img.bullet").first().attr("src", "images/bullet2.png");
});
答案 2 :(得分:0)
此外,
<img class='bullet' src='images/bullet1.png' />
答案 3 :(得分:0)
只需使用gal.children
进行尝试,因为gal
已在$(this)
处启动。无需$(gal)
与$(img)
答案 4 :(得分:0)
首先:你为什么双重三重构建一个jQuery元素? var gal = $(this);是一个正确的jQuery元素强制转换。 从那里加仑。而不是$(gal)。 那么即使你不需要,也请设置分号。可读性原因。
我认为你最后一行的gal元素超出了范围。 你在$(“div.galerina”)的范围内定义了gal。每个(function(){...});在外面它不再可访问。