Я использую jQuery для синтаксического анализа и вывода XML. У меня есть вложенный цикл для вывода всех дочерних элементов TASKS, но каждая итерация выводит сразу сразу всех потомков, а не по одному на строку.jQuery Вывод повторяющихся дочерних узлов XML Неправильно
<xml version="1.0">
<choices>
<choice id="1" name="Type 1">
<description>
Example a
</description>
<tasks>
<task>Do this</task>
<task>Do that</task>
</tasks>
</choice>
<choice id="2" name="Type 2">
<description>
Example b
</description>
<tasks>
<task>Do other</task>
<task>Do something</task>
</tasks>
</choice>
</choices>
Мой сценарий:
$(function(){
"use strict";
//Above XML content is being passed as a string for this example
var str = "<xml version='1.0'><choices><choice id=\"1\" name=\"Type 1\"><description>Example a</description><tasks><task>Do this</task><task>Do that</task></tasks></choice><choice id=\"2\" name=\"Type 2\"><description>Example b</description><tasks><task>Do other</task><task>Do something</task></tasks></choice></choices></xml>";
var xmlDoc = $.parseXML(str);
var $xml = $(xmlDoc);
var temp = {};
$xml.find('choice').each(function() {
var $this = $(this);
temp.id = $this.attr('id');
temp.title = $this.attr('name');
temp.description = $this.find('description').text();
temp.choices = [];
var counter = 0;
$this.find('tasks').eq(counter).each(function(index, child) {
document.write($(child).find("task").text() + counter + "<br>");
counter++;
});
});
});
Выход я хочу видеть детей задач:
Do this0
Do that1
Do other2
Do something3
Выходной сигнал Сейчас я видел:
Do thisDo that0
Do otherDo something0
Великолепие в простоте вашего ответа. Я, по-видимому, поклонник Рубе Голдберга. –
Кроме того, если это все, что вам нужно, чтобы это сделать .. есть много ненужных вещей. Вы можете просто избавиться от цикла выбора и просто выполнить $ xml.find ('task'). Each (function (i) {document.write ($ (this)).text() + i + "
")}); ', см. здесь: http://jsfiddle.net/fhLSd/1/ – smerny
Что я делаю, это немного сложнее, но я выводил каждый логический шаг, который я делаю так как это в конечном итоге будет массивом внутри объекта в массиве. Я ценю все возможные способы вывода. –