2010-08-17 2 views

ответ

1

Поскольку вы добавляете буквальные цитаты в строку. Вместо "indexPos": '"' + nodeIndex + '"' просто используйте "indexPos": nodeIndex.

0

Добились этого (вроде) здесь:

http://jsfiddle.net/8vWXZ/15/

За исключением, если вы видите в предупреждении он выводит обратную косую черту, и я не знаю, почему:

[{"prodId":"item1","indexPos":"\"1\""},{"prodId":"item2","indexPos":"\"2\""},{"prodId":"item3","indexPos":"\"3\""},{"prodId":"item4","indexPos":"\"4\""}] 
+1

Это должно быть редактирование, поскольку на самом деле это не ответ. – RoToRa

2

Это может быть более короткий подход - я завернул ваш текст в промежутке и добавил к нему класс «контекста». Тогда я могу использовать селекторы намного проще вытащить данные в JSON-ized объект.

Вот изменение, которое я сделал в HTML (просто образец одного из элементов LI):

<li> 
    <span class="up">Up1</span> 
    <span class="down">Down1</span> 
    <span class="content">Item 1</span> 
</li> 

Не уверен, что если вы можете обернуть его в пролете или нет, но я думал, Я бы попробовал.

Моей обновленной скрипки здесь: http://jsfiddle.net/Tn97g/

Вот моя кнопка обработчики события нажатия:

$("#submit").click(function() { 
    var items=$("#reOrder li"); 
    var tosubmit=[]; 
    $(items).each(function(index, e){ 
     var nextItem = { "id": e.id, "val" : $(e).find(".content").text() }; 
     tosubmit.push(nextItem); 
    }); 
    alert(JSON.stringify(tosubmit)); 
}); 

Это немного более кратким, но я не уверен, что именно вы хотите сделать. Надеюсь, это поможет!!

Смежные вопросы