javascript - jquery动态创建数组

标签 javascript jquery arrays

我有一个包含 3 个输入字段的页面。我想获得这些字段中的最大值。 我想要实现的是,用户可以填写一个字段,该字段的值会动态添加到数组中,并且如果该值大于其他两个值,则该值也会显示在文本字段中输入字段。 我希望能够在没有 onBlur() 函数的情况下执行此操作(如果可能)。 尝试使用 keyup 函数,但这会不断向数组添加数字,而数组中应该只有 3 个数字可用。

这是我到目前为止所拥有的:

$(document).ready(function() {
  $('#a').keyup(function() {
    var x = $('#a').val();
    hs.push(x);
  });
  $('#b').keyup(function() {
    var y = $('#b').val();
    hs.push(y);
  });
  $('#c').keyup(function() {
    var z = $('#c').val();
    hs.push(z);
  });
});
<script src="https://ajax.googleapis.com/ajax/libs/jquery/1.7.1/jquery.min.js"></script>
<input id="a" type="text" />
<input id="b" type="text" />
<input id="c" type="text" />

如果我在 a 中输入 1,在 b 中输入 2,在 c 中输入 3,然后改变主意,将 c 从 3 更改为 33,现在我的数组中有 4 个数字 (1,2,3,33),而我只想要 3 (1,2,33)...

我猜 keyup 函数不是这里的方法,但希望尽可能保持动态,而不强制用户从任何输入更改焦点以获得结果。

如果可能的话,有人知道如何做到这一点吗?

最佳答案

这是因为 .push() 附加到数组。您将需要更改某个索引处的项目。在您的情况下, hs[0]hs[1]hs[2] 将被更改,而不是 push。因此,您可以使用 hs = [null, null, null] 并适当更改值。使用数组并不是最好的方法,您可能想要使用具有 3 个属性 abc 的对象。以下是如何做到这一点:

  var hs = {
      'a': null,
      'b': null,
      'c': null
  };

然后只需设置元素hs.ahs.bhs.c:

$('#a').keyup(function() {
  var x = $('#a').val();
  hs.a = x;
});
$('#b').keyup(function() {
  var y = $('#b').val();
  hs.b = y;
});
$('#c').keyup(function() {
  var z = $('#c').val();
  hs.c = z;
});

关于javascript - jquery动态创建数组,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/28700377/

相关文章:

javascript - javascript 中的curl -u 请求

javascript - 使用 x-editable 使不同的元素在单击时可编辑

javascript - Raty Js 星级评分以提供浮点值

javascript - 我可以通过更改 Angular Js 中的 url 地址来移动到我的个人资料页面而无需登录吗?

arrays - 在 D 中使用带有数组的构造函数

javascript - 谷歌地图折线的中间(质心?)

javascript - javascript 和 css 中的图像上的文字

jQuery tablesorter 在我动态加载的表上不起作用?

python - 在 3d numpy 数组中查找区域的中心坐标

javascript - JavaScript 中的大 O 表示法和函数式编程