从一个选择器更新多个元素?
我想从同一选择器更新多个元素(具有不同的值)。执行此操作最简单的方法是什么?我尝试过
$(document).ready(function(){
var t=$('.test input');
t[0].val('Foo');
t[1].val('Bar');
});
使用此 HTML
<div class="test">
<input type="text">
<input type="text">
</div>
一个实例在这里 http://jsbin.com/afoda/6
但我收到一个错误 undefined t[0].val is not a function
。像这样访问多个元素的正确方法是什么?
I would like to update multiple elements(with different values) from the same selector. What would be the easiest way to go about doing this? I have tried
$(document).ready(function(){
var t=$('.test input');
t[0].val('Foo');
t[1].val('Bar');
});
with this HTML
<div class="test">
<input type="text">
<input type="text">
</div>
A live example is here http://jsbin.com/afoda/6
I get an error though for undefined t[0].val is not a function
. What is the proper way to access multiple elements like this?
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(2)
您可以使用
.eq(index)
获取.val()
,如下所示:您可以在这里测试,
.eq()
获取表示该索引处的元素的 jQuery 对象,而不是 DOM 元素。这种方法也有效(如果您坚持输入,那么它在您可以在这里测试
You can use
.eq(index)
to get.val()
, like this:You can test it here,
.eq()
get the jQuery object representing the element at that index, rather than the DOM element. This approach also works (if you're sticking to inputs, it wouldn't work the same for example on a<select>
element):You can test that here
当您通过索引访问 jQuery 对象中的元素时,您不会获得每个元素的新 jQuery 对象,您只是获得该元素。如果要使用
val
方法,您需要为每个元素创建一个 jQuery 对象:另一种方法是循环遍历元素并从数组中获取值:
When you are accessing the elements in a jQuery object by index, you don't get a new jQuery object with each element, you just get the element. If you want to use the
val
method you need to create a jQuery object for each element:Another way is to loop through the elements and get values from an array: