2

私はJSdivメソッドを使用して、コンピューター言語の名前を egのデータ属性に割り当てています。

<div id="Languages" data-Languages=''></div>

jsコード

var langs='["Perl", "PHP", "Python", "Ruby", "Scala", "C#"]';
$('#Languages').data('Languages', langs);

しかし、テキストボックスにテキストを入力すると、エラーオブジェクトが表示されます。オートコンプリートにこの行を使用しています。

$(function () { 
    $("#tags").autocomplete({ source: $('#Languages').data('Languages') }); 
}); 

別の変数を作成し、jquery Webサイトに実装されているようにソースとして渡すと、完全に正常に機能します。

JSON将来的には、ページの読み込み時にオートコンプリートデータをフェッチしてdivデータ属性に割り当てるものを使用したいので、divのデータ属性で処理したいと思います。

その質問がばかげているように聞こえたらごめんなさい、それは私の2日目とそのjqueryすべてのものです。

4

4 に答える 4

4

あなたの言語は''のようなもので、文字列になります。オートコンプリートのソースのように動作する配列が必要です。また、試行しているデータのIDとキーに不一致があります。これを試して

var langs = ["Perl", "PHP", "Python", "Ruby", "Scala", "C#"];
$('#locations').data('languages', langs);
$(function () { $("#tags").autocomplete({ 
  source: $('#locations').data('languages') }); 
}); 
于 2013-01-15T09:04:44.410 に答える
4

これが正確に問題であるかどうかはわかりませんが、配列を一重引用符で囲んで文字列にしています。

そのはず:

var langs = ["Perl", "PHP", "Python", "Ruby", "Scala", "C#"];
于 2013-01-15T09:03:22.250 に答える
1

問題は、divが実際にページにロードされていないときに、ページ準備機能の外でdivにデータを割り当てていることです。以下のコードを試してみてください。私にとってはうまくいきます。

$(function () { 
    var langs = ["Perl", "PHP", "Python", "Ruby", "Scala", "C#"];
    $('#locations').data('languages', langs);
    $("#tags").autocomplete({ 
       source: $('#locations').data('languages') }); 
});
于 2013-01-15T09:23:43.513 に答える
1

これは @Rahul ソリューションと大差ありません。

しかし、データ属性から直接読みたいかもしれません:

var langs = ["Perl", "PHP", "Python", "Ruby", "Scala", "C#"];

$('#locations').attr('data-Languages', langs);

$(function () { $("#tags").autocomplete({ 
    source: $('#locations').data('languages').split(',')}); 
}); 

作業例: http: //jsbin.com/oyusub/4/

于 2013-01-15T10:13:29.017 に答える