2011-12-16 8 views
0

私は結果をデータベースに照会するウェブサイトの自動補完機能を構築しました。私は現在、結果を取得し、ハイパーリンクにして、動的にページに追加することができます。たまには非常に長い結果(40〜50文字)が得られ、20文字以下にカットしたいと思っています。ここに私の現在のコードは次のとおりです。WebServiceから返されたテキストを変更する

$.ajax({ 
    type: "POST", 
    contentType: "application/json; charset=utf-8", 
    url: "autoCompleter2.asmx/GetDatabaseName", 
    data: '{"prefixText":"' + $('#tags').val() + '"}', 
    dataType: "json", 
    success: function(data) { 
     $(data.d).each(function(index, value) { 
      $("<a />").attr("href", "http://wms.pc.factset.com/sql_database.aspx?name=" + value).appendTo("#databaseHolder").text(value).after("<br />"); 
     }); 
    }, 
}); 

私はすべてインターネット上で検索しましたが、私は私の「値」変数を取り、20文字のサブ文字列にそれをカットする方法を見つけることができません。私は次のようなコードを見た:

$(value).text().substring(0, 2); 

しかし、何も動作しません。どんな助けも素晴らしいだろう。

答えて

0
if (value.length > 20) { 
    value = value.substr(0, 20); 
} 

これは、valueがスティングであることを前提としています。ここで

はデモです:http://jsfiddle.net/hEjxB/

valueはDOM要素であるなら、あなたはこれを行うことができます:ここでは

var $value = $(value), 
    text = $value.text(); 
if (text.length > 20) { 
    $value.text(text.substr(0, 20); 
} 

はデモです:http://jsfiddle.net/hEjxB/1/

+0

値は文字列ではありません。私はそれが何であるか分かりませんが、ハイパーリンクのテキストとして使用できます。値によって私に与えられる唯一のオプションは、value.constructor、value.hasOwnProperty、value.isPrototypeOf、value.propertyIsEnumerable、valueです。 toLocalString、value.toString、およびvalue.valueOfです。 – vesuvious

+0

'.each()'ループ内で 'console.log(value);'を実行するとどうなりますか? – Jasper

+0

私は申し訳ありませんが、初めてのあなたは正しいです。 Visual Studioは私に.lengthと.substrオプションを表示していないので、利用できないと考えました。ご協力ありがとうございました!! – vesuvious

関連する問題