答案 0 :(得分: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));
});
它更简洁,但我不确定你想要做什么。我希望这有帮助!!
答案 1 :(得分:1)
因为您要向字符串添加文字引号。而不是"indexPos": '"' + nodeIndex + '"'
只使用"indexPos": nodeIndex
。
答案 2 :(得分:0)
在这里完成了这个(某种程度的):
除非您在警报中看到它输出反斜杠,否则我不确定原因:
[{"prodId":"item1","indexPos":"\"1\""},{"prodId":"item2","indexPos":"\"2\""},{"prodId":"item3","indexPos":"\"3\""},{"prodId":"item4","indexPos":"\"4\""}]