0

これが私のXMLです。私は多くの学位を取得し、各学位には多くの学校があり、各学校には多くの専門分野があります。ページには 3 つのドロップダウンが表示されます。すべてのコードで onclicks のネストされたドロップダウンの更新をすべて実行するよう求めているわけではありません。(誰かがクールな再発パターンを持っていない限り、何がうまくいくでしょう.

私が抱えているこの問題は、学位ノードから学位を要求し、ドロップダウンに text() を追加すると、学位、学校、仕様からすべてのテキストを取得することです...したがって、「学位」のドロップダウンが必要です1」ですが、「Degree 1 School 1 Spec ...」が表示されます。「Degrees.filter、and children」を追加しようとしましたが、何も得られません。

ネストされたノードを持つ XML を一度に 1 レベルずつ解析する方法を理解する必要があります。

御時間ありがとうございます。

<Degrees>
  <Degree>
  Degree 1
  <Schools>
    <School>School 1
      <Specializations>
       <Specialization>Specialization 1</Specialization>
       <Specialization>Specialization 2</Specialization>
      </Specializations>
    </School>
    <School>School 2
      <Specializations>
       <Specialization>Specialization 3</Specialization>
       <Specialization>Specialization 4</Specialization>
      </Specializations>
    </School>
  </Schools>
  </Degree>
</Degrees>

現在のjQuery

var Degrees = $(PID).find('Degrees');
    Degrees.find("Degree").filter("Degree").each(function () {
    var select = $('#degree');
    var value = $(this).text();
    select.append("<option value='" + value + "'>" + value + "</option>");
    });

HTML

<select id="degree">
    <option value="" selected="selected">-- Select Degree --</option>
</select>
4

1 に答える 1

0

これが私がやったことです。これにより、ドロップダウンをソートすることもできます。誰か他のアイデアがあればコメントしてください。

var degreelist = new Array();
                $(xml).find('PID[id="' + PID + '"] Degrees Degree').each(function () {
                    var Item = new Object();
                    Item.Id = $(this).attr("id");
                    Item.value = $(xml).find('Degrees Degree[id=' + Item.Id + ']').text();
                    degreelist.push(Item);
                });

                degreelist.sort(function (a, b) {
                    if (a.value.text > b.value.text) return 1;
                    else if (a.value.text < b.value.text) return -1;
                    else return 0
                })

                for (var i = 0; i < degreelist.length; i++) {
                    $('#degree').append("<option value='" + degreelist[i].Id + "'>" + degreelist[i].value + "</option>");
                }
于 2012-06-05T18:45:19.070 に答える