Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/jquery/86.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
对象上的Jquery.val()_Jquery_Map - Fatal编程技术网

对象上的Jquery.val()

对象上的Jquery.val(),jquery,map,Jquery,Map,我有一个id对象和两个HTML元素。它们是相同的,因为我将用一个ajax get更新两个相同的元素 我用一个选择器获得了这个变量id,该选择器搜索表单 我的问题: 检查这两个元素还是仅检查此对象id中的第一个元素 如果其中一个元素具有不同的值会怎么样 问了这个问题之后我做了什么 我现在使用从objct获取两个值 添加了一个id相等的检查。 学会了不要跳过第一个大句子的描述 Jquery文档= 非常感谢 根据文档,.val以及所有其他getter方法,返回第一个选定元素的值 .val返回与选择器匹

我有一个id对象和两个HTML元素。它们是相同的,因为我将用一个ajax get更新两个相同的元素

我用一个选择器获得了这个变量id,该选择器搜索表单

我的问题:

检查这两个元素还是仅检查此对象id中的第一个元素

如果其中一个元素具有不同的值会怎么样

问了这个问题之后我做了什么

我现在使用从objct获取两个值 添加了一个id相等的检查。 学会了不要跳过第一个大句子的描述 Jquery文档= 非常感谢

根据文档,.val以及所有其他getter方法,返回第一个选定元素的值

.val返回与选择器匹配的第一个元素的值


另外,ID必须是唯一的,所以您必须选择另一个唯一的ID,或者用类替换ID。另一个选项是删除id属性并按名称选择:$'[name=id]'。

来自jQuery源:

id = [<input type=​"hidden" name=​"id" value=​"test_id">​, <input type=​"hidden" name=​"id" value=​"test_id">​]
id.val()
Result: "test_id"

使用val测试的元素始终是[0],即集合中的第一个元素,无论有多少个元素或值是什么。

如果这是jQuery元素集合,.val将只返回第一个值。

。val将检查运行它的元素集中第一个元素的值。如果向.val传递如下函数:.valfunction index,value{},则可以获取运行该函数的元素集中每个元素的值

您可能需要签出.val的文档:

这里有一个演示:如果您更改了任何输入的值,那么所有输入的值都将是console.loged

正如lonesomeday所说,这要求您返回值,以便表单元素保留其值。但是,您可以使用.map获取每个输入的值:

$('input').val(function () {
    console.log(this.value);
    return this.value;
});
下面是一个使用.map的演示:

…也可以使用循环:

$('input').map(function (index, element) {
    console.log(this.value);
});

它只获取第一个的值。

来自:

val=获取集合中第一个元素的当前值 匹配元素


因此,它只对选择器匹配的第一个元素起作用。

如果希望所有值都使用map函数

var $inputs = $('input');
for (var i = 0, len = $inputs.length; i < len; i++) {
    console.log($inputs[i][0].value);//or inputs[i].val() will also work
}

在询问您是否可以编写一个三行脚本来测试这个问题之前,很容易阅读文档。@Archer如何在三行中测试这个问题?@Azd325 1。对于变量i=0,len=id.length,ivar $inputs = $('input'); for (var i = 0, len = $inputs.length; i < len; i++) { console.log($inputs[i][0].value);//or inputs[i].val() will also work }
var ids = id.map(function(index, element){
   return $(this).val();
})