2

約 200 の医学用語とその定義をリストした単純な iPhone Web ページを作成しています。私は JQuery オートコンプリートを使用して、ユーザーが用語を動的に検索できるようにしています。ユーザーが必要な用語をタップすると、その用語の定義をすぐ下に表示したいと考えています。用語と定義の両方を一度に使用して JS 配列を設定するのに助けが必要です。

現在、私はそのようにロードされた配列を持っています:

var terms = [
        "Abdomen",
        "Ability",
        "Abolish",
etc...

ただし、次のように用語とその定義を配列にロードする方法を知っていれば、私が好むのは次のとおりです。

terms['Abdomen'] = 'stomach, stomach area, belly, tummy';
terms['Ability'] = 'skill';
terms['Abolish'] = 'end, do away with, get rid of';

とにかく、terms配列リストの最後で、オートコンプリート コードを次のように有効にします。

$( "#terms" ).autocomplete({ source: terms,});
    $( "#terms" ).autocomplete({ minLength: 2 });
    $( "#terms" ).autocomplete({ delay: 0 });
    $( "#terms" ).autocomplete({ select: function(event, ui) 
    { 
        var myDiv1 = document.getElementById("content");
        myDiv1.appendChild(document.createTextNode(ui.item.label));
    }

現在これが行われているのは、ユーザーがドロップダウン リストの用語をタップしたときだけです。用語自体は、 divui.item.labelに書き込まれるだけです。content私が欲しいのは、用語の定義が書かれていることです。オートコンプリート選択機能で用語/ラベルではなく定義を単純に記述できるJQueryでこれを設定するにはどうすればよいですか?

4

2 に答える 2

0

示されているように、文字列インデックスとして用語を使用して別の個別のjs配列を作成します。definitionsではなく、のような他の名前で呼んでくださいterms。次に、「content」divを追加する場合は、次のような新しいものを作成します

var newDefinition = definitions[ui.item.label];

そして、それは用語の定義を呼びます。次に、今行っていたようにappendChild関数を使用します。

于 2010-11-08T17:57:43.363 に答える
0

この例によると、ソース データ配列に必要なすべてのプロパティを追加し、選択イベントでそれらにアクセスできる必要があります。

したがって、ソース データ配列は次のようになります。

var terms = [
    {label : "Abdomen", desc: "stomach, stomach area, belly, tummy"},
    {label : "Ability", desc: "skill"},
    {label : "Abolish", desc: "end, do away with, get rid of"}
etc...

次に、select イベント定義で次のようにします。

$( "#terms" ).autocomplete({ select: function(event, ui) 
{ 
    var myDiv1 = document.getElementById("content");
    myDiv1.appendChild(document.createTextNode(ui.item.desc));
}

したがって、違いは、以前使用していたのと同じように使用できることui.item.descですui.item.label

于 2010-11-08T18:11:06.303 に答える