Javascript 转换getElementsByTagName以获取隐藏的输入字段

Javascript 转换getElementsByTagName以获取隐藏的输入字段,javascript,Javascript,我尝试使用getElementsByTagName的替代方法,在脚本中获取与以前相同的值,但将其作为隐藏的输入字段。请注意,在我的列表项中有自定义html标记。非常感谢您的帮助 现在我有这个: HTML Javascript 我想使用一个如下所示的隐藏表单,并使用具有如下所示隐藏输入的表单以相同的格式在我的JS中获取该表单: <form name="form1" id="form-search-widget"> <input type="hidden" name="quer

我尝试使用getElementsByTagName的替代方法,在脚本中获取与以前相同的值,但将其作为隐藏的输入字段。请注意,在我的列表项中有自定义html标记。非常感谢您的帮助

现在我有这个:

HTML

Javascript

我想使用一个如下所示的隐藏表单,并使用具有如下所示隐藏输入的表单以相同的格式在我的JS中获取该表单:

<form name="form1" id="form-search-widget">
  <input type="hidden" name="query" value="New York, NY">
  <input type="hidden" name="leadto" value="email@email.com">
  <input type="hidden" name="myid" value="5555">
</form>

因此,选择元素并在其上循环。这里我使用querySelectorAll和reduce

const hiddenElems=document.queryselectoral'form-search-widget input[type=hidden]' 常量数据=数组.fromhiddenElems.reduce函数对象,元素{ 对象[elem.name]=元素值 返回obj }, {} console.logdata
那么问题是什么呢?选择表单元素并在其上循环。对,因此我正在努力获取其中的数据,就像我使用自定义标记一样,通过获取LI。IE,查询=纽约,纽约rsp=5555导致=email@email.comdocument.form1.query.value,document.form1。leadto.value,document.form1。value,而不是在元素上循环的属性上循环,而是读取名称和值
let e = document.getElementsByTagName("my-search-widget");
0 == e.length && (e = document.getElementById("my-search-widget").getElementsByTagName("li"));
for (let t = 0; t < e.length; t++) {
    let n = e.item(t),
        r = this.defaultOptions;
    Object.keys(this.defaultOptions).forEach(e => {
        let t = n.attributes.getNamedItem(e);
        if (null != t) switch (t.name.toLowerCase()) {
            case "ltype":
                {
                    let n = this.getValidListingTypes(t.value);
                    null != n && (r[e] = n);
                    break
                }
            case "ptype":
                {
                    let n = this.getValidPropertyTypes(t.value);
                    null != n && (r[e] = n);
                    break
                }
            default:
                r[e] = t.value
        }
    }), this.createWidget(n, r)
}
<form name="form1" id="form-search-widget">
  <input type="hidden" name="query" value="New York, NY">
  <input type="hidden" name="leadto" value="email@email.com">
  <input type="hidden" name="myid" value="5555">
</form>