使用jquerydynamic创build每个input值的JSON

我遇到了一种情况,我想通过PHP读取一些JSON格式的数据,但是我有一些问题了解如何构builddynamic创buildJSON格式的Javascript对象。

我的情况如下:

<input title="QA" type="text" class="email"> <input title="PROD" type="text" class="email"> <input title="DEV" type="text" class="email"> 

至此我所拥有的Javascript代码都经过了每一个input抓取的数据,然而我却无法从这里理解如何处理。

 var taskArray = {}; $("input[class=email]").each(function() { var id = $(this).attr("title"); var email = $(this).val(); //how to create JSON? }); 

如果可能,我想获得以下输出。

 [{title: QA, email: 'a@a.com'}, {title: PROD, email: 'b@b.com'},{title: DEV, email: 'c@c.com'}] 

电子邮件是通过input字段值获取的。

任何灯光在这种情况下将不胜感激!

喜欢这个:

 function createJSON() { jsonObj = []; $("input[class=email]").each(function() { var id = $(this).attr("title"); var email = $(this).val(); item = {} item ["title"] = id; item ["email"] = email; jsonObj.push(item); }); console.log(jsonObj); } 

说明

您正在寻找an array of objects 。 所以,你创build一个空白数组。 通过使用“标题”和“电子邮件”作为键为每个input创build一个对象。 然后将每个对象添加到数组中。

如果你需要一个string,然后做

 jsonString = JSON.stringify(jsonObj); 

示例输出

 [{"title":"QA","email":"a@b"},{"title":"PROD","email":"b@c"},{"title":"DEV","email":"c@d"}] 

我不认为你可以把JavaScript对象转换成只使用jQuery的JSONstring,假设你需要JSONstring作为输出。

根据您定位的浏览器,可以使用JSON.stringify函数生成JSONstring。

有关更多信息,请参见http://www.json.org/js.html ,您还可以find旧式浏览器的JSONparsing器,这些浏览器本身不支持JSON对象。

在你的情况下:

 var array = []; $("input[class=email]").each(function() { array.push({ title: $(this).attr("title"), email: $(this).val() }); }); // then to get the JSON string var jsonString = JSON.stringify(array); 

可能会有所帮助,我宁愿尽可能纯JS,它会大大提高性能,因为你不会有很多的JQuery函数调用。

 var obj = []; var elems = $("input[class=email]"); for (i = 0; i < elems.length; i += 1) { var id = this.getAttribute('title'); var email = this.value; tmp = { 'title': id, 'email': email }; obj.push(tmp); }