首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >Javascript更新导致悲伤

Javascript更新导致悲伤
EN

Stack Overflow用户
提问于 2012-09-28 09:20:00
回答 3查看 60关注 0票数 1

无论如何,我都不是一个javascript开发人员,但是我被JS问题困住了。

如果有人能帮我找出问题所在,那就太棒了。

正在崩溃的部分脚本是:

代码语言:javascript
复制
        $('button').each(function()
            {
            var curr_title = $(this).attr('title');

            if(curr_title.length > 0)   $(this).button({ icons: { primary: curr_title } });
            else                        $(this).button();
            });

错误是

TypeError:无法读取未定义属性的“长度”。

在以前的代码版本中,这一点都没有问题。但是,惟一的更改是更新Jquery。

有人知道这是否可能是问题所在吗?

再来一次。如果我太蠢了我很抱歉。

EN

回答 3

Stack Overflow用户

回答已采纳

发布于 2012-09-28 09:24:05

$(this).attr('title');是未定义的,因此没有长度。您的按钮是否包含标题,如果您的测试是否存在态度,请尝试:

代码语言:javascript
复制
$('button').each(function()
            {
            var curr_title = $(this).attr('title');

            if(curr_title != undefined)  
                $(this).button({ icons: { primary: curr_title } });
            else                        
                $(this).button();
            });
票数 0
EN

Stack Overflow用户

发布于 2012-09-28 09:24:16

这一行中返回的值是undefined (可能是因为它引用的按钮没有指定此类属性)。

代码语言:javascript
复制
var curr_title = $(this).attr('title');

jQuery在版本1.6中改变了attr()的行为

在jQuery 1.6中,对于尚未设置的属性,.attr()方法返回未定义的属性。

因此,if语句中的调用失败。要“修复”这个,只需为undefined添加一个检查,如下所示:

代码语言:javascript
复制
if( (typeof curr_title != 'undefined') && (curr_title.length > 0)) {
   $(this).button({ icons: { primary: curr_title } });
} else {
   $(this).button();
}
票数 2
EN

Stack Overflow用户

发布于 2012-09-28 09:23:05

看起来,您可能在标记中有一个没有"title“属性的按钮。对于此按钮(或多个按钮),curr_title未定义,因此对其调用.length将引发异常。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/12637114

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档