无法在JavaScript中获取String的子字符串

时间:2012-05-07 08:43:04

标签: javascript substring undefined

当内容长度超过120个字符时,我试图从变量中获取子字符串。

$.ajax({
          url: url,
          dataType: 'json',
          async: false,
          success: function(data){
              $.each(data, function(i, item) {
                      var name = item.name;
                      var itemId = item.itemId;

                    if(name.length >= 120) {
                        selectHTML += '<option value=' + itemId + '>' + name.substr(0, 120) + '</option>';
                      } else {
                      selectHTML += '<option value=' + itemId + '>' + name + '</option>';
                    }
            });
          }
    });

但结果,我总是得到这个:

name is undefined

当我在没有substring()的情况下执行此操作时,它可以正常运行。有什么建议吗?


修改 此行引发错误:

if(name.length >= 120) {

2 个答案:

答案 0 :(得分:1)

尝试将if (name.length >= 120)更改为if (name && name.length >= 120)

答案 1 :(得分:0)

错误表示其中一个item s不包含name

使用console.log(data)来确定您实际收到的内容 - 您的JavaScript代码没有任何问题。

如果您无法更改服务器端代码,则可以回退到空名称:

var name = item.name || '';