2011-10-20 2 views
0

페이지의 위글에 많은 요소가 있습니다 (id = "item(\d{1,})"). 최소 값과 최대 값이 (\d{1,}) regexp 인 요소 ID를 빠르게 얻는 방법?문자열에서 최소/최대 int 값을 얻는 방법은 무엇입니까?

+0

ID가 'item123','item42', 'item69682374534' 형식을 의미합니까? –

+0

이것이 jQuery와 어떤 관련이 있습니까? : P – jbabey

+0

@bbabey, 그것은 이미 이용 가능할 수 있으며 그 자체로 작업을 수행하는 데 유용한 도구가 될 수 있습니다. 개인적으로 나는 정규 표현식이 그것들을 비교할 수 없기 때문에 모든 숫자 값을 얻는 것으로 시작한다고 생각한다. 수동으로 가장 낮은 값을 찾은 다음'getElementById ("item"+ minValue);'. 아니지만 빨리. – Thor84no

답변

1

또한 querySelectorAll을 사용할 수 있습니다; 모든 브라우저 이어야합니다. 당신이 jQuery를 사용하는 경우

//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; 
     } 
    } 
} 

또는 : 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; 
    } 
} 

이후를 지원하고

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; 
    } 
}); 
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]; 
+0

이것은 실제로 질문에 대답하지 않습니다. –

+0

@VivinPaliath 질문은 jQuery를 사용하여 요소 ID에서 최소/최대 값을 가져 오는 것에 관한 것이 었습니다. jQuery는 실제로 수학/배열 함수를 다루지 않으므로 jQuery에서 다룰 수있는 범위 내에서 답을 얻을 수 있습니다. OP가 배열에서 최소/최대 값을 얻으려면 지금 꼭 알아야 할 필요가 있다면 (나처럼 보이지는 않습니다.) 그는 더 심각한 문제가 있습니다. 그래도 대답을 훔쳐에 좋은 직장. –

+0

질문에 jQuery 태그가 지정되지 않았습니다. 또한 jQuery를 사용하여 반환되는 ID를 반복하여 최대 값과 최소값을 얻을 수 있습니다. –

관련 문제