id = [<input type="hidden" name="id" value="test_id">, <input type="hidden" name="id" value="test_id">]
id.val()
Result: "test_id"
我有一个带有两个HTML元素的“id对象”。有相同的原因是因为我将用一个ajax get更新两个相同的Elements。
我使用搜索表单的选择器获得了此变量“id”。
我的问题:
.val()是检查两个元素还是只检查此对象中的第一个元素“id”?
如果其中一个元素具有不同的值,那该怎么办呢?
在这个问题之后我做了什么!
非常感谢!
答案 0 :(得分:2)
.val()
将检查运行它的元素集中第一个元素的值。如果您传递.val()
这样的函数:.val(function (index, value) {})
,那么您可以获取运行该函数的元素集中的每个元素的值。
您可能需要查看.val()
:http://api.jquery.com/val
$('input').val(function () {
console.log(this.value);
return this.value;
});
以下是演示:http://jsfiddle.net/mV4U6/2/(如果您更改任何输入的值,则所有输入的值将为console.log
ed)
正如lonesomeday所述,这要求您返回值,以便表单元素保留其值。但是,您可以使用.map()
来获取每个输入的值:
$('input').map(function (index, element) {
console.log(this.value);
});
以下是使用.map()
:http://jsfiddle.net/mV4U6/3/
......也可以使用循环:
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
}
答案 1 :(得分:2)
如果您希望所有值都使用地图功能
var ids = id.map(function(index, element){
return $(this).val();
})
答案 2 :(得分:1)
根据文档.val()
以及所有其他getter方法,返回第一个选定元素的值。
http://api.jquery.com/val/#val1
答案 3 :(得分:1)
.val()
返回与选择器匹配的第一个元素的值。
此外,ID必须是唯一的,因此您必须选择其他唯一 ID,或将id
替换为class
。另一种方法是删除id
属性并按名称选择:$('[name="id"]')
。
答案 4 :(得分:1)
来自jQuery源代码:
val: function( value ) {
var hooks, ret, isFunction,
elem = this[0];
(Line 161 of src/attributes.js)
使用val
测试的元素始终为[0]
,即集合中的第一个元素,无论有多少或值是什么。
答案 5 :(得分:1)
答案 6 :(得分:0)
如果这是一个jQuery元素集合,.val()
将只返回第一个值。
答案 7 :(得分:0)
它只获得第一个的值。 http://api.jquery.com/val/