无论如何,我都不是一个javascript开发人员,但是我被JS问题困住了。
如果有人能帮我找出问题所在,那就太棒了。
正在崩溃的部分脚本是:
$('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。
有人知道这是否可能是问题所在吗?
再来一次。如果我太蠢了我很抱歉。
发布于 2012-09-28 09:24:05
$(this).attr('title');是未定义的,因此没有长度。您的按钮是否包含标题,如果您的测试是否存在态度,请尝试:
$('button').each(function()
{
var curr_title = $(this).attr('title');
if(curr_title != undefined)
$(this).button({ icons: { primary: curr_title } });
else
$(this).button();
});发布于 2012-09-28 09:24:16
这一行中返回的值是undefined (可能是因为它引用的按钮没有指定此类属性)。
var curr_title = $(this).attr('title');jQuery在版本1.6中改变了attr()的行为
在jQuery 1.6中,对于尚未设置的属性,.attr()方法返回未定义的属性。
因此,if语句中的调用失败。要“修复”这个,只需为undefined添加一个检查,如下所示:
if( (typeof curr_title != 'undefined') && (curr_title.length > 0)) {
$(this).button({ icons: { primary: curr_title } });
} else {
$(this).button();
}发布于 2012-09-28 09:23:05
看起来,您可能在标记中有一个没有"title“属性的按钮。对于此按钮(或多个按钮),curr_title未定义,因此对其调用.length将引发异常。
https://stackoverflow.com/questions/12637114
复制相似问题