2010-08-17 54 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 2010-08-17 13:07:52

2

這可能是一個較短的方法 - 我在一個跨度中包裹了文本,併爲其添加了一個「上下文」類。然後,我可以使用選擇器更容易將數據提取到JSON化對象中。

這是我的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)); 
}); 

這是一個有點更簡潔,但我不知道你希望做什麼。我希望這有幫助!!