0

当内容长度超过 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) {
4

2 回答 2

2

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

于 2012-05-07T08:57:45.743 回答
0

该错误意味着其中一个items 不包含 a name

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

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

var name = item.name || '';
于 2012-05-07T08:57:48.697 回答