如何使用forEach从输入创建字典?

时间:2018-08-23 17:17:56

标签: javascript jquery input foreach

我想用JavaScript创建字典。我有一些具有不同属性的动态输入,我想根据这些输入和属性创建字典,该怎么做?

我的html看起来像这样:

<div class="margin_bot" id="itemRows1">
  <p id="ProwNum1">
     <input class="params margin_bot input_text input_size text_input span-11" tipo="LAM" type="text" name="par_1" value="password" placeholder="Valor">
     <input class="params margin_bot input_text input_size text_input span-11" tipo="LAM" type="text" name="par_2" value="password2" placeholder="Valor"> 
  </p>
</div>

我的javacript函数看起来像这样:

function create_kapps_dict(selector, content){
var items = $('p[id^="ProwNum"]').find('.params').filter(':visible');
var post_settings = [];
items.forEach( )
}

但是它不起作用。我想做的是创建一个字典,将键设为输入的name和值分别为输入的tipovalue

1 个答案:

答案 0 :(得分:0)

我会稍微修改一下js(删除了jquery)。 请查看随附的代码笔以获取完整示例。 它与c#中的字典不同,但是它是一个对象,您可以在其中基于元素名称访问值。 https://codepen.io/tstrand66/pen/vzNLQe?editors=1011

function create_kapps_dict(content) {
    const post_settings = {};
    Array.prototype.slice.call(document.querySelectorAll('.params')).forEach(function 
    (element) {
        post_settings[element.getAttribute('name')] = element.getAttribute(content);
    });
    console.log(post_settings);
    return post_settings;
}
const createKappsDict = create_kapps_dict('tipo');
console.log(createKappsDict['par_1']);
console.log(createKappsDict['par_2']);
const createKappsDict2 = create_kapps_dict('value');
console.log(createKappsDict2['par_1']);
console.log(createKappsDict2['par_2']);