Javascript 将输入元素对转换为json

Javascript 将输入元素对转换为json,javascript,jquery,ajax,arrays,json,Javascript,Jquery,Ajax,Arrays,Json,我有一个简单的ui,它有一个链接,上面写着additem。单击此按钮时,其下方会显示一对输入框。如果再次单击,则会显示另一对。我正试图找到生成这些元素的最佳方法,并将其转换为键值对的json数组,每对中的第一个输入元素是键,第二个输入元素是值 现在我只有一个计数器,我使用它生成ID,例如在add item链接的click事件中: $('#features').append('<input id="feature-name-' + self.featureCount + '" type="t

我有一个简单的ui,它有一个链接,上面写着additem。单击此按钮时,其下方会显示一对输入框。如果再次单击,则会显示另一对。我正试图找到生成这些元素的最佳方法,并将其转换为键值对的json数组,每对中的第一个输入元素是键,第二个输入元素是值

现在我只有一个计数器,我使用它生成ID,例如在add item链接的click事件中:

$('#features').append('<input id="feature-name-' + self.featureCount + '" type="text" name="asdf" /><a class="delete-feature" data-id="' + self.featureCount + '">Delete</a><input id="feature-description-' + self.featureCount + '" type="text" name="asdf" />');

我不知道使用什么作为name属性,以便从中轻松创建json数组。

您可以在不使用id属性的情况下执行类似操作

$('#features').append('<div><input type="text" />
<a class="delete-feature" data-id="' + self.featureCount + '">Delete</a><input    type="text" /></div>');

名称属性使用什么并不重要,只要名称和描述名称不同。假设这些元素都附加到id为myform的表单中。为每一对指定自己的包装器对象。在这里,我使用了div,但字段集同样适用

$('#features').append(
    '<div class="feature-div">
    '<input id="feature-name-' + self.featureCount + '" type="text" name="asdf" />' +
    '<a class="delete-feature" data-id="' + self.featureCount + '">Delete</a>' +
    '<input id="featurena-description-' + self.featureCount + '" type="text" name="asdf" />' +
    '</div>');

或者以您希望的方式显示数据。

为什么不能使用与id属性相同的值?
$('#features').append(
    '<div class="feature-div">
    '<input id="feature-name-' + self.featureCount + '" type="text" name="asdf" />' +
    '<a class="delete-feature" data-id="' + self.featureCount + '">Delete</a>' +
    '<input id="featurena-description-' + self.featureCount + '" type="text" name="asdf" />' +
    '</div>');
var myarray = [];
$('#myform .feature-div').each(function(i, v) {
    myarray.push([
        $('input[name=name]', v).val(), $('input[name=description]', v).val()]);
});