0

我有这个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());
});

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

4

1 回答 1

1

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

1)替换这个

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

只需

$('.biggie img:visible')

您正在做的是将 jQuery 元素转换为 DOM 元素,然后再次使其成为 jQuery 元素。

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

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

于 2013-11-06T08:35:13.303 回答