这是我的XML。我将获得许多学位,每个学位将有许多学校,每个学校将有许多专业。 Page将提供三个下拉菜单。我并不是要求所有代码都预先形成所有onclicks嵌套下拉列表更新。 (除非某人有一些很酷的复发模式,否则会起作用。
我遇到的这个问题是当我从Degrees节点请求学位并将文本()添加到下拉列表中时,我从学位,学校,规范中获取所有文本...所以我想要的是一个下拉菜单与“1级”,但我得到“学位1学校1规格...”,我相信你明白了,我尝试添加“Degrees.filter,和孩子们”,但后来我什么都没得到。
我需要了解如何一次一次地使用嵌套节点解析XML。
感谢您的时间。
<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>
答案 0 :(得分: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>");
}