【问题标题】:How to get all HTML objects with type=number如何获取 type=number 的所有 HTML 对象
【发布时间】:2015-12-03 10:58:13
【问题描述】:

我有一组输入;有些是数字输入,有些是文本输入。我知道我可以通过

获得所有输入
x=document.getElementsByTagName('input');

但是我怎样才能只获得 type=number 的输入呢?我需要一个纯 JavaScript 解决方案,没有 jQuery 或其他框架。

【问题讨论】:

    标签: javascript html tags html-input


    【解决方案1】:

    需要使用querySelectorAll()方法。

    x = document.querySelectorAll('input[type="number"]');
    

    DEMO

    【讨论】:

      【解决方案2】:

      你有一个很好的答案,但对于不完全支持选择器 API 的旧浏览器,你会使用 getElementsByTagName 然后过滤类型:

      var inputs = document.getElementsByTagName('input');
      
      for (var i=0, numbers=[], iLen=inputs.length; i<iLen; i++) {
        if (inputs[i].type == 'number') numbers.push(inputs[i]);
      }
      

      或者如果 ES5 支持可用:

      var numbers = Array.prototype.filter.call(document.getElementsByTagName('input'), 
        function(input) {return input.type == 'number'}
      );
      

      【讨论】:

      • 这很有帮助,我很欣赏这个答案,但我不太担心旧版浏览器。我会投票但没有足够的代表。
      • @Leshy——没关系,我不在乎选票。答案适用于遇到您的问题(以及答案)的任何有类似问题的人。 ;-)
      猜你喜欢
      • 1970-01-01
      • 2013-09-22
      • 1970-01-01
      • 2016-12-28
      相关资源
      最近更新 更多