问题是,我已经编写了jquery.min.js 1.4版本的脚本。之后不得不升级到1.9.1版本,出现了问题。
Uncaught TypeError: Can not read property 'substr' of undefined.
告诉我该怎么办。发生错误的代码的这一部分。
var processCaption = function(settings){
var nivoCaption = $('.nivo-caption', slider);
if(vars.currentImage.attr('title') != ''){
var title = vars.currentImage.attr('title');
if(title.substr(0, 1) == '#') title = $(title).html();
if(nivoCaption.css('display') == 'block'){
nivoCaption.find('p').fadeOut(settings.animSpeed, function(){
$(this).html(title);
$(this).fadeIn(settings.animSpeed);
});
} else {
nivoCaption.find('p').html(title);
}
nivoCaption.fadeIn(settings.animSpeed);
} else {
nivoCaption.fadeOut(settings.animSpeed);
}
}
尝试
来源
如果是undefined
或只有whitespace
,$.trim()将返回空字符串。
if($.trim($('#abc').attr('title')) != ''){
问题
如果vars.currentImage.attr('title')
没有title属性,则返回undefined
而不是''
(空字符串)。您正在检查空字符串,因此如果它没有标题属性,它就会进入循环
所以您会得到错误,因为substr
只能应用于string
。
在调用substr()
之前检查变量是否为null
if (val1 != null) {
var val2= val1.substr(6);
//......
}