jQuery在console.log中工作但不在变量中

时间:2013-11-06 08:29:59

标签: javascript jquery

我有console.log()

console.log($($('.biggie img:visible')[0]).attr('src').split('/').pop());

返回:

4.jpg

当我把这行放到这样的变量中时:

var jpg = $($('.biggie img:visible')[0]).attr('src').split('/').pop(); 

控制台说:

Uncaught TypeError: Cannot call method 'split' of undefined 

发生了什么事?

谢谢!

编辑:

对不起,对不起,我知道现在发生了什么,你把我指向了正确的方向,在我的回答下面......这是整个代码:

imgVis.fadeOut(400, function() {
                var jpg = $($('.biggie img:visible')[0]).attr('src').split('/').pop(),
                    nr = parseInt(jpg,10);
                $(this).next(':hidden').fadeIn(400);
                console.log($($('.biggie img:visible')[0]).attr('src').split('/').pop());
});

我实际上没有可见的图像。 Ashaming。 :/谢谢!!!

1 个答案:

答案 0 :(得分:1)

嗯......这真的很奇怪。这两条线是一个接一个的。如果没有,那么我会建议您的选择器与您期望的不匹配,或者匹配元素没有src属性。我会建议两件事:

1)替换此

$($('.biggie img:visible')[0])

只是

$('.biggie img:visible')

你正在做的是将jQuery元素转换为DOM元素,并再次使它成为jQuery元素。

2)console.log($('.biggie img:visible').length);

如果长度为0,则仍然没有可见的图像。