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

时间:2011-10-20 14:57:33

标签: javascript

我在页面id = "item(\d{1,})"中有很多元素。如何使用最小值和最大值(\d{1,}) regexp?

快速获取元素ID

2 个答案:

答案 0 :(得分:1)

使用此功能获取您的ID列表:

$j("[id^=item]").map(function(){ return Number(this.id.substr(4)); });

我认为jQuery没有任何工具可以快速获得最小值/最大值,但写自己是非常简单的。

根据Vivin的要求提供了一些微不足道的部分:

var arr = $j("[id^=item]").map(function(){ return Number(this.id.substr(4)); }).sort();
var min = arr[0];
var max = arr[arr.length-1];

答案 1 :(得分:1)

如果浏览器支持,您还可以使用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;
    }
});