24

我有一组输入,我想以数组形式或您建议的任何方式获取每个输入的值。我不太擅长数组。

$(elemnt).each(function(index, element) {
    $('#spc-name').val($(".spocName").val());
    alert($(".spocName").val());
});

上面的代码行对我来说是正确的,但仅适用于单个输入,但我有多个输入,class="spocName"所以我想获取所有的值,然后我可以将每个输入保存在单独的行中的 DB 表中。

4

6 回答 6

49

If all your inputs share the same class say "class1" then you can select all such inputs using this

var inputs = $(".class1");

Then you can iterate over the inputs any way you want.

for(var i = 0; i < inputs.length; i++){
    alert($(inputs[i]).val());
}
于 2013-10-08T12:35:14.730 回答
38

要将每个元素的值作为数组获取,您可以使用map()

var valueArray = $('.spocName').map(function() {
    return this.value;
}).get();

或者在 ES6 中(请注意,这在 IE 中不受支持):

var arr = $('.spocName').map((i, e) => e.value).get();

然后,您可以根据需要使用此数组保存到您的数据库 - 例如。作为 AJAX 请求中的参数。

于 2013-10-08T12:32:33.403 回答
5
var values = [];
$('.spocNames').each(function(){
    values.push({ name: this.name, value: this.value }); 
});
//use values after the loop
console.log(values);
于 2013-10-08T12:32:44.713 回答
5

您可以使用 jquery每个 函数...

$('.spocNames').each(function(){
  alert(this.value);
}
于 2013-10-08T12:36:21.780 回答
1
  let itemarray = []
        document.querySelectorAll('.selector').forEach((item, index) => {
            console.log(item, index)

            itemarray.push($(item).val())

            item.addEventListener('input', (e => {
                itemarray[index] = $(item).val()
                console.log(itemarray)
            }))
        });

说明:打开一个空数组,对要接收值的选择器分别使用 forEach。使用 jQuery 将空对象放入数组中,与选择器的长度一样多。每当您在输入字段中输入任何内容时,它都会修改它的原始值,从而修改数组本身。

于 2021-06-21T08:22:36.777 回答
-1

@mandip-darji 的回答完全可以接受并且有效。我对它几乎没有做任何改进。所以在我的情况下,如果你想要一个只有一个输入字段的值。

您可以执行以下操作。

let keyWord = null;
    $('.searchinventory_input').each(function(){
       if(this.value){
           keyWord = this.value;
           return false;
       }
   });
    
于 2020-10-23T13:51:20.290 回答