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