我有与含有值几个输入字段的网页:提取值
<input type="text" id="input_1" value="Apple">
<input type="text" id="input_2" value="Pear">
我需要的Javascript/jQuery来提取这些值并将它们存储在一个这样的数组:
var myArray = ["Apple", "Pear"];
有没有人知道一种方法来做到这一点?
谢谢!
我有与含有值几个输入字段的网页:提取值
<input type="text" id="input_1" value="Apple">
<input type="text" id="input_2" value="Pear">
我需要的Javascript/jQuery来提取这些值并将它们存储在一个这样的数组:
var myArray = ["Apple", "Pear"];
有没有人知道一种方法来做到这一点?
谢谢!
您可以使用jQuery map()
和get()
返回值的数组。
var myArray = $('input[type="text"]').map(function() {
return this.value;
}).get();
console.log(myArray)
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.0/jquery.min.js"></script>
<input type="text" id="input_1" value="Apple">
<input type="text" id="input_2" value="Pear">
一个非常好的和干净的解决方案。非常感谢Nenad Vracar :) – elton73
您可以通过输入标签必须循环:
var data = [];
var inputs = document.getElementsByTagName('input');
for(var i=0; i< inputs.length; i++)
{
data.push(inputs[i].value);
}
console.log(data);
<input type="text" id="input_1" value="Apple">
<input type="text" id="input_2" value="Pear">
如果您使用JQuery
var data = [];
$('input').each(function(){
data.push($(this).val());
});
console.log(data);
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>
<input type="text" id="input_1" value="Apple">
<input type="text" id="input_2" value="Pear">
优化JQuery的:
var data = [];
$(":text").each(function(){ //only searches for input type="text"
data.push($(this).val());
});
console.log(data);
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>
<input type="text" id="input_1" value="Apple">
<input type="text" id="input_2" value="Pear">
UPDATE
我会强烈建议您使用在所有输入元件的共用类,然后依次通过他们像$('.the_class')
为它甚至更加优化。
jQuery
解决方案。
var arr = [];
$('input').each(function(){
arr.push($(this).val());
});
console.log(arr);
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>
<input type="text" id="input_1" value="Apple">
<input type="text" id="input_2" value="Pear">
或纯JS的解决方案。
var elems = document.querySelectorAll('input[type="text"]'),
res = Array.from(elems).map(v => v.value);
console.log(res);
<input type="text" id="input_1" value="Apple">
<input type="text" id="input_2" value="Pear">
jQuery和vanilla jS的答案。太好了! – elton73
使用document.querySelectorAll
和Array#map
:
var result = [].map.call(document.querySelectorAll('input'), function (e) {
return e.value
})
console.log(result)
<html>
<body>
<input type="text" id="input_1" value="Apple">
<input type="text" id="input_2" value="Pear">
</body>
</html>
你的意思是'无功myArray的= $( “#INPUT_1”)。VAL(),$( “#INPUT_2”)。VAL()]'? - 为什么不查看jQuery手册?这是真正的基本东西 – mplungjan
...或'Array.from(document.querySelectorAll('input'))。map(x => x.value);' –
太基本了!做一点阅读! – funcoding