值对象,我得到了下面的HTML:如何创建一个键:从多个HTML输入
<div class="slot_subclass">
<div class="form-group">
<input type="text" class="form-control slot" name="slot_name">
</div>
<div class="form-group">
<input type="text" class="form-control slot" name="slot_type">
</div>
</div>
<div class="slot_subclass">
<div class="form-group">
<input type="text" class="form-control slot" name="slot_name">
</div>
<div class="form-group">
<input type="text" class="form-control slot" name="slot_type">
</div>
</div>
<div class="slot_subclass">
<div class="form-group">
<input type="text" class="form-control slot" name="slot_name">
</div>
<div class="form-group">
<input type="text" class="form-control slot" name="slot_type">
</div>
</div>
的slot_subclass
量可以是无限的。
我需要解析所有这些输入并且使一个对象,其中键是的slot_subclass
(slot_name
)和值第一input
值是第二(slot_type
)的值。
我试过如下:
$(".slot").map(function(){
return $(this).val();
}).get();
,但我只是得到值的简单数组。我可以使用jQuery来完成这项任务。谢谢。
UPD_1为了办理相同的密钥我选择了下面的代码(如果有人感兴趣):
jsonObj = [];
$(".slot_subclass").each(function() {
var slot_name = $(this).find("input[name=slot_name]").val();
var slot_type = $(this).find("input[name=slot_type]").val();
item = {};
item[slot_name] = slot_type;
jsonObj.push(item);
});
console.log(jsonObj);
谢谢大家的帮助。
首先注意,没有这样的事情作为“JSON对象”。 JSON是将数据序列化为字符串的符号。它从来不是一个对象。关于你的代码,'map()'返回一个数组。在你的例子中,这个数组只包含值,而不是key:值对。您遇到的问题是您有多个具有相同名称的字段,这在单个对象中无效。 –
我需要的名字是'slot_subclass'中第一个输入的值,'value'是第二个输入的值。理想情况下,不会出现类名或html'name'属性 – Jack
我为你添加了一个答案。我不得不修改你使用的数组格式,但它是唯一可以使用重复输入名称的方法 –