0

在我的控制器中,我正在动态创建滑块 html 以传递给我的视图 - 所以我最终得到了多个滑块(可能是 1 个滑块,可能是 20 个,或者介于两者之间的任何数字 - 取决于来自数据库的查询)。

我需要将每个滑块与它在数据库中的 ID 和价格相关联。

ExtraPrices 数组保存与每个滑块关联的价格。ExtraIDs 数组保存数据库中每个额外项目的 ID。

我想创建一个 JSON 字符串,其中包含每个滑块的设置,并获取 ExtraPrice 和 ExtraID,这样我就有了一个 JSON 字符串,我可以将其发送回我的代码。

HTML 输出为:

 <script>
     var ExtraPrices = [20.00,30.00,50.00];
     var ExtraIDs = [13,19,25];
 </script>

  <label for="slider1">item 1</label>
  <input type="range" name="slider1" id="slider1" min="0" max="10" value="0">
  <label for="slider2">item 2</label>
  <input type="range" name="slider2" id="slider2" min="0" max="10" value="0">
  <label for="slider3">item 3</label>
  <input type="range" name="slider3" id="slider3" min="0" max="10" value="0">

我需要能够遍历两个数组,并将它们与相对滑块值联系起来。伪代码:

var count = 0;
var strJSon = "["
"RoomName": null,";

$.each('#slider').function(){
    strJSon+= "{"
    strJSon+= "\"ID\": " + ExtraIDs[count] + ",";
    strJSon+= "\"Price\": " + ExtraPrices[count] + ",";
    strJSon+= "\"Number\": " + SliderX.slider("option", "value");
    strJSon+= "},"
}

//Remove last comma
strJSon = strJSon.Substring(0, strJSon.LastIndexOf(","));
strJSon+= "]"

所以我最终得到类似于:

[{
"ID":13,"Price":20.00,"Number":4,
"ID":19,"Price":20.00,"Number":2,
"ID":25,"Price":20.00,"Number":5
}]

任何人都可以使用我上面的 Javascript 代码来帮助遍历每个滑块,并构建上面提到的 JSON 字符串吗?

谢谢,

标记

4

1 回答 1

5

不要自己构建 JSON,创建一些对象,将它们添加到数组中,然后再添加JSON.stringify结果。

var arr = [];

$.each('#slider').function(i) {
  var obj = {
    id: ExtraIDs[count],
    price: ExtraPrices[count],
    number: window['Slider' + i].slider("option", "value")
  };
  arr.push(obj);
});

JSON.stringify(arr);
于 2013-09-13T14:36:19.807 回答