javascript - 如何从字符串中获取最小/最大 int 值?

标签 javascript

我的页面中有许多 id = "item(\d{1,})" 的元素。如何快速获取最小值和最大值为(\d{1,})正则表达式的元素id?

最佳答案

如果浏览器支持,您还可以使用querySelectorAll;所有浏览器都应该选择它。 IE 从 8 开始就支持它。

var elements = document.querySelectorAll("[id^=item]");
var max = null;
var min = null;
for(var i = 0; i < elements.length; i++) {

   var number = elements[i].id.replace(/item/, "");

   if(max == null) {
      max = number;
      min = number;
   }

   else {
      max = (number > max) ? number : max;
      min = (number < min) ? number : min;
   }
}

如果浏览器不支持它,您将不得不执行以下操作:

//assuming that you're looking for div; just replace it with the actual element 
//you're looking for
var elements = document.getElementsByTagName("<div">); 

var max = null;
var min = null;
for(var i = 0; i < elements.length; i++) {
    if(/item\d+/.test(elements[i].id)) {
       var number = elements[i].id.replace(/item/, "");

       if(max == null) {
          max = number;
          min = number;
       }

       else {
          max = (number > max) ? number : max;
          min = (number < min) ? number : min;
       }
    }
}

或者如果您使用的是 jQuery:

var max = null;
var min = null;
jQuery("[id^=item]").each(function() {
    var number = this.id.replace(/item/, "");

    if(max == null) {
       max = number;
       min = number;
    }

    else {
       max = (number > max) ? number : max;
       min = (number < min) ? number : min;
    }
});

关于javascript - 如何从字符串中获取最小/最大 int 值?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/7837867/

相关文章:

javascript - 对 NodeJS+Express 进行基本 GET 请求的 Angular 调用

javascript - 在一个术语上拆分字符串,然后在另一个术语上拆分

javascript - Bootstrap 工具提示未出现在 div 元素中

javascript - 用于验证印度货币的正则表达式模式

javascript - 使用 javascript 的 IE10 中 window.opener 中的 DOM 树限制?

javascript - AngularJs 使用 ngResource 从 Controller 解析服务

javascript - Polymer 2.5.0 - dom-repeat 未更新

javascript - 如果用户登录 Backbone,JavaScript 如何显示/隐藏表单

javascript - Array#map() 中的异步/等待

javascript - 解析用户查询仅检索当前用户