1

「conta」、「zip、city、street_a、street_b」、「count、number」のデータを表示し、「contact」キーからドロップダウンメニューを作成しようとしていますが、これはどこにも行きません。これがどのように機能するかを説明してください。これは私が持っているもので得たものです。

<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
<title>jQuery</title>
<!-- script type='text/javascript' href='https://ajax.googleapis.com/ajax/libs/jquery/1.9.1/jquery.min.js'></script -->
<script src="http://code.jquery.com/jquery-latest.js"></script>
<script type="text/javascript">

data = [
{"conta":"13356","name":"MISS Two"},
{"zip":"01111","city":"NASHUA, MA","street_a":"10 MAIN ROAD SQUARE","street_b":"Nothing"},
{"count":"544","number":"250"},
[
  {"contact":"Mark Bre"},
  {"contact":"Mary Lou"},
  {"contact":"John Ton"},
  {"contact":"Carls Des"},
  {"contact":"Carlos Drt"}
 ]
] 

$('body').append('<select id="dynamicSelect"></select>');
var options="";
$.each(data,function(i1,val1){
   if($.isArray(val1)){
      $.each(data,function(i2,val2){
           options += "<option value="+ val2.contact +">" + val2.contact + "</option>"
      });
   }
}
$('#dynamicSelect').append(options);

</script>
</head>

<body>
The Select:<select id="dynamicSelect">
<option value="option value" selected="selected">option html</option>
</select>
</body>

</html>
4

2 に答える 2

0

eachメイン配列要素が配列であるかどうかを確認した後、ネストされた配列ではなく、メイン配列をに渡してオプションを作成します

変化する:

if($.isArray(val1)){
      $.each(data,function(i2,val2){
           options += "<option value="+ val2.contact +">" + val2.contact + "</option>"
      });
}

に:

if($.isArray(val1)){
      /* loop over "val1"*/
      $.each(val1,function(i2,val2){
           options += "<option value="+ val2.contact +">" + val2.contact + "</option>"
      });
}

また、コードを でラップする必要があるため、タグが存在するdocment.ready前にコードが起動しますselect

すべてのコードをラップする

$(function(){
   /* run code here*/

});

first の閉じ中かっこがいくつかありませんeach。ブラウザ コンソールを使用して、スローされたエラーを確認します

于 2013-03-19T00:32:05.170 に答える
0

まず、JS コードにいくつかのエラーがありました。

  • 外側のそれぞれの内部で関数を終了する必要があります)
  • への内部呼び出しは、.each()反復する必要がval1ありdataます。

JS

// Dynamically add a label for the select to the body
var label = $('<label id="dynamicSelectLabel" for="dynamicSelect">The Select</label>').appendTo('body');
// Dynamically add the select to the body
var select = $('<select id="dynamicSelect"></select>').appendTo('body');
// For each value in the data array
$.each(data, function (i1, val1) {
    // If the value is an array
    if ($.isArray(val1)) {
        // For each value in the contact array
        $.each(val1, function (i2, val2) {
            // Add an option to the select with the contact name and value
            select.append('<option value=' + val2.contact + '>' + val2.contact + '</option>');
        });
    }
});

デモ

于 2013-03-19T00:32:22.863 に答える