我在页面id = "item(\d{1,})"
中有很多元素。如何使用最小值和最大值(\d{1,})
regexp?
答案 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;
}
});