问题是,我已经编写了脚本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);
}
}
答案 0 :(得分:3)
尝试
<强> Soultion 强>
$.trim()如果为undefined
或只有whitespace
,则会返回空字符串。
if($.trim($('#abc').attr('title')) != ''){
<强>问题强>
如果vars.currentImage.attr('title')
没有title属性,则返回undefined
而不是''
(空字符串)。并且您正在检查空字符串,因此如果它没有title属性
因此,您会收到错误,因为substr
只能应用于string
。
答案 1 :(得分:1)
substr()
之前,检查变量是否为
if (val1 != null) {
var val2= val1.substr(6);
//......
}