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

エラーは、itemの1つにが含まれていないことを意味しますname

console.log(data)実際に何を受け取っているかを把握するために使用します。JavaScriptコードに問題はありません。

サーバー側のコードを変更できない場合は、空の名前にフォールバックできます。

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