从一个选择器更新多个元素?

发布于 2024-09-09 00:35:36 字数 506 浏览 3 评论 0原文

我想从同一选择器更新多个元素(具有不同的值)。执行此操作最简单的方法是什么?我尝试过

$(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 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(2

蘑菇王子 2024-09-16 00:35:36

您可以使用 .eq(index) 获取 .val(),如下所示:

$(document).ready(function(){
  var t=$('.test input');
  t.eq(0).val('Foo');
  t.eq(1).val('Bar');
});

您可以在这里测试.eq() 获取表示该索引处的元素的 jQuery 对象,而不是 DOM 元素。这种方法也有效(如果您坚持输入,那么它在

$(document).ready(function(){
  var t=$('.test input');
  t[0].value = 'Foo';
  t[1].value = 'Bar';
});

您可以在这里测试

You can use .eq(index) to get .val(), like this:

$(document).ready(function(){
  var t=$('.test input');
  t.eq(0).val('Foo');
  t.eq(1).val('Bar');
});

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):

$(document).ready(function(){
  var t=$('.test input');
  t[0].value = 'Foo';
  t[1].value = 'Bar';
});

You can test that here

等数载,海棠开 2024-09-16 00:35:36

当您通过索引访问 jQuery 对象中的元素时,您不会获得每个元素的新 jQuery 对象,您只是获得该元素。如果要使用 val 方法,您需要为每个元素创建一个 jQuery 对象:

$(document).ready(function(){
  var t = $('.class input');
  $(t[0]).val('Foo');
  $(t[1]).val('Bar');
});

另一种方法是循环遍历元素并从数组中获取值:

$(document).ready(function(){
  var values = ['Foo', 'Bar'];
  $('.class input').each(function(i){
    $(this).val(values[i]);
  });
});

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:

$(document).ready(function(){
  var t = $('.class input');
  $(t[0]).val('Foo');
  $(t[1]).val('Bar');
});

Another way is to loop through the elements and get values from an array:

$(document).ready(function(){
  var values = ['Foo', 'Bar'];
  $('.class input').each(function(i){
    $(this).val(values[i]);
  });
});
~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文