2010-12-29 5 views
0

나는 간단한 것을하고 사이트는 js로 무겁지 않으므로 이것을 위해 js 프레임 워크를 사용하지 않습니다.javascript : getElementsByClass

이벤트 수신기를 추가하려고하는데 클래스별로 요소를 가져 오려고합니다. 나는 다음과 같은 함수 + 내가 시도한 다른 것을 발견했다. 그러나 그들 중 누구도 요소를 찾지 못했다.

function getElementsByClass(searchClass, domNode, tagName) { 
    if (domNode == null) domNode = document; 
    if (tagName == null) tagName = '*'; 
    var el = new Array(); 
    var tags = domNode.getElementsByTagName(tagName); 
    var tcl = " "+searchClass+" "; 
    for(i=0,j=0; i<tags.length; i++) { 
     var test = " " + tags[i].className + " "; 
     if (test.indexOf(tcl) != -1) 
      el[j++] = tags[i]; 
    } 
    return el; 
} 
var els = getElementsByClass("wow"); 
alert(els.length); 

내가 클래스 와우로 된 div의 몇 가지를 테스트하지만 클래스 속성은 클래스 이름의 공간로 구분됩니다 0

답변

3

함수가 제대로 작동한다고 가정하면 DOM이 준비되었거나 창에로드 될 때 수행하십시오. 최종 본문 태그 전에 호출하십시오.

DEMO : http://jsfiddle.net/rXApk/

+1

코드는 잘 작동 : http://jsbin.com/aliti3/6 MEDER 아마 바로 그래서. – Hemlock

+0

감사합니다. – slik

1

점점 계속이 아닌 쉼표로 구분 된 목록.

귀하의 테스트는 wow,과 일치하지 않으므로 wow을 찾습니다.