使用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); }