2011-02-17 2 views
2

접두어 만 사용하여 ID 배열을 검색하려면 어떻게해야합니까?예 : xx_numbers에서 ID 배열 가져 오기

예. 나는 50 개의 div를 가지고 있고 그것들은 모두 가지고 있고 ID는 다음과 같이 보입니다 : aa_0000. 여기서 'a'는 접두어이고 '0'은 임의의 숫자를 나타냅니다.

답변

4

id이 시작하는 모든 요소를 ​​공통으로 원하십니까?

그들은 모두 div 요소 가정이 작동합니다 ....

// Just so we can stay DRY :) 
var prefix = 'aa_', 
    matchElement = 'div'; 

// Do we have an awesome browser? 
if ('querySelectorAll' in document) { 
    var matchedDivs = document.querySelectorAll(matchElement + '[id^="' + prefix + '"]'); 
} else { 
    var allDivs = document.getElementsByTagName(matchElement), 
     matchedDivs = [], 
     regex = new RegExp('^' + prefix); 

    for (var i = 0, allDivsLength = allDivs.length; i < allDivsLength; i++) { 
     var element = allDivs[i]; 
     if (element.id.match(regex)) { 
      matchedDivs.push(element); 
     } 
    } 
} 

console.log(matchedDivs.length); // Expect 3 

jsFiddle합니다.

숫자를 명시 적으로 일치 시키려면 정규식 /^aa_\d+$/을 사용해보십시오.

jQuery가 주위에 떠있는 경우 $('div[id^="aa__"]')을 사용할 수 있습니다. jQuery를 사용하는 사람들을 위해

+0

그래, 그게해야한다. – buley

+0

또한 브라우저가'querySelectorAll'를 지원하는지 테스트 한 다음'div [id^= 'aa _']'를 사용할 수도 있습니다. –

+0

@Felix Kling 그게 재미 있지? : P (하지만, 곧 편집을 참조하십시오). – alex

0

는 :

$('div[id^="aa_"]')