首页 > 解决方案 > 如何使用 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

标签: javascriptjqueryinputforeach

解决方案


我会稍微修改你的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']);

推荐阅读