jQuery在控制台中工作.log但不在变量中工作

jQuery working in console.log but not in variable

本文关键字:工作 变量 log jQuery 控制台      更新时间:2023-09-26

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

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

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

1) 替换这个

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

用只是

$('.biggie img:visible')

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

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

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