如何用JavaScript/jQuery从随机ID的多个隐藏输入框生成值数组?
解决隐藏输入框值数组的问题
没问题呀,咱们来一步步解决这个问题~
先说说你现有代码里的几个问题:
- 你用了
$('html').each(),整个页面只有一个<html>元素,所以这个循环只会跑一次,自然只能拿到第一个隐藏输入框的值 - 还有个小细节:HTML规范里ID是不能重复的哦,虽然浏览器不会直接报错,但这是不符合标准的写法,以后尽量给每个元素分配唯一ID呀~
下面给你两种简单可行的方案,不管输入框的ID是随机还是无规律,都能轻松提取所有值到数组里:
方案一:用jQuery实现
直接选中所有type="hidden"的输入框,用.map()提取每个框的值,最后转成普通数组就行:
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script> <input type="hidden" id="some_random_id1" value="abc" /> <input type="hidden" id="some_random_id2" value="def" /> <input type="hidden" id="some_random_id3" value="ghi" /> <script> // 提取所有隐藏输入框的值到数组 const hiddenValues = $('input[type="hidden"]').map(function() { return $(this).val(); }).get(); alert(hiddenValues); // 会弹出 "abc,def,ghi" </script>
方案二:原生JavaScript实现
如果不想依赖jQuery,原生JS也能轻松搞定,用querySelectorAll选中所有隐藏输入框,转成数组后提取值:
<input type="hidden" id="some_random_id1" value="abc" /> <input type="hidden" id="some_random_id2" value="def" /> <input type="hidden" id="some_random_id3" value="ghi" /> <script> // 选中所有隐藏输入框并转成数组 const hiddenInputs = document.querySelectorAll('input[type="hidden"]'); // 提取每个输入框的值 const hiddenValues = Array.from(hiddenInputs).map(input => input.value); alert(hiddenValues); // 同样弹出 "abc,def,ghi" </script>
核心思路就是:不管这些隐藏输入框的ID是什么,只要它们的type是hidden,我们就能用input[type="hidden"]这个选择器精准选中所有目标元素,然后批量提取值就好啦~
内容的提问来源于stack exchange,提问作者ehaze27
相关产品推荐
相关产品推荐

