2012-05-07 18 views
0

コンテンツの長さが120文字を超えると、変数から部分文字列を取得しようとしています。JavaScriptの文字列の部分文字列を取得できません

$.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) { 
+0

私たちにいくつかの実際のコードを表示してください。あなたが投稿したコードはうまくいきます:http://jsfiddle.net/ThiefMaster/3M7Gc/ – ThiefMaster

+0

ここで、私の全体的なAjax機能を説明します。 – doonot

答えて

1

は、エラーがitem Sのいずれかがnameが含まれていないことを意味しif (name.length >= 120)

0

if (name && name.length >= 120)に変更してみてください。

console.log(data)を実際に受け取るには、JavaScriptコードに問題はありません。

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

var name = item.name || ''; 
関連する問題