2017-02-07 11 views
1

私はJSONでエンコードされたAJAXオブジェクト配列を持っており、他のすべてを繰り返し処理する必要があります。私はjQueryとJSが新しく、これを行う方法が不明です。私はオプションの値とオブジェクト名としての文字列の名前が必要です。他のすべてのAJAXオブジェクトを反復する

AJAXオブジェクト(この例では数字は整数でデータベースと数字からauto_idをスキップ又は順不同かもしれないいるので、彼らはないかもしれないためであるが注意:

{"data":["1","chicken","2","beef","3","fish","4","pork","5","turkey","6","lamb","7","vennison","8","duck"],"error":false} 

Iが試し以下、次のコードは、私がこの回答の検索を実行しようとしました。動作しませんが、それを見つけることができませんでした。TIA。現在、newOptionは「未定義」戻っている。

$.each(data.data, function(i,s){ 
    var count=s[i]; 
    var newOption = s[i+1];   
    output += '<option value="' + count + '">' + newOption + '</option>'; 
    i++; 
    });    

答えて

1

あなたはifステートメントを使用することができますモジュラスで?そしてinitiaあなたのcountをループの外に出してください。

var count = 0; 
$.each(data.data, function(i,element){ 
    if (i % 2 == 0) { 
    count++; 
    output += '<option value="' + count + '">' + element + '</option>'; 
    } 
    i++; 
}); 
+0

こんにちはマット。配列のオブジェクトからそれらを取得する必要があるので、データベースのauto_idであるため、数値は順不同かもしれません。私は、Webページ上でnewOption = "undefined"を取得しています。私はインデックスを使ってオブジェクトを正しく参照していないと思う。 – kc3ase

+0

'newOption =" undefined "'について正しいです。 's'変数は実際の要素そのものです。更新されたコードを確認してください。 –

+0

私は、彼らが最初に不調であることについて何かを見たとは思わない。 –

2

forループを使用するが、2で各ループカウンタをインクリメント:

var data = {"data":["1","chicken","2","beef","3","fish","4","pork","5","turkey","6","lamb","7","vennison","8","duck"],"error":false} 

var output = ''; 

for(i = 0; i < data.data.length; i+=2) { 
    output += '<option value="' + data.data[i] + '">' + data.data[i+1] + '</option>'; 
} 

https://jsfiddle.net/go98npym/

+0

これはありがとうございます! – kc3ase

1

jQuery.each最初のパラメータを使用してアレイの上に繰り返し処理する指標及び第二の場合1つはインデックス自体の価値です。

jQueryを使用する代わりにプレーンJavaScriptを使用します。

は、次のことを試してください。

var d = data.data; 
var output = ""; 

for (var i = 0 ; i< d.length; i=i+2) { 
    var count = d[i]; 
    var newOption = d[i+1]; 
    output += "<option value='"+count+"'>"+newOption+"</option>"; 
} 
+0

これはありがとうございます! – kc3ase

関連する問題