Эй, человек, использующий jQuery и
jQuery JSON-плагин , я смог сделать следующее:
Мне пришлось немного изменить ваш HTML:
<div id="Directory">
<input type="text" class="title" />
<span class="person 0">
<input type="text" class="name" />
<input type="text" class="color" />
</span>
<span class="person 1">
<input type="text" class="name" />
<input type="text" class="color" />
</span>
</div>
И тогда я смог использовать следующий код для создания вашего массива JSON:
var Directory = {};
Directory.title = $("div#Directory input.title").val();
Directory.persons = [];
$("div#Directory span.person").each(function() {
var index = $(this).attr("class").split(" ")[1];
Directory.persons.push({
name:"person" + index + $(this).children("input.name").val(),
color:$(this).children("input.color").val(),
});
});
alert($.toJSON(Directory));
Этот http: //stackoverflow.com/questions/492833/getting-correct-index-from-input-array-in-jquery также несколько полезен. К сожалению, я не смог скопировать их метод выбора с вашим конкретным набором атрибутов.
Надеюсь, я не делаю вашу домашнюю работу;) В приведенном выше URL есть пробел, потому что у меня недостаточно очков репутации, чтобы разместить более одной гиперссылки.
Это ваш последний JSON:
{"title":"abc","persons":[{"name":"person0englishman","color":"pink"},{"name":"person1indian","color":"brown"}]}