2016-08-10 4 views
-3

내 HTML 내의 모든 요소에 대해이 코드를 적용 할 수없는 코드가 있습니다. [0]은 하나만 의미하는 것을 알고 있습니다. 그러나 코드는 원시 js없이 작동하지 않습니다.getElementsbyClassName은 모든 요소를 ​​찾아서 작동합니다.

window.onload = function yourFunction(){ 
    var str = document.getElementsByClassName('icon')[0].innerHTML; 

    var res = str.replace(/_s\.png/g, ".png") 

    document.getElementsByClassName('icon')[0].innerHTML = res; 

    setTimeout(yourFunction, 5000); 
} 

yourFunction(); 

당신은 for 루프를 사용한다 내가하려는 JSFiddle

은 '아이콘'클래스

+3

은 루프 들어 본 적이 있습니까? – Simon

+2

는'getElementsByClassName'는'NodeList'을 반환합니다. 당신은 도움이되지 않습니다 설명없이 그들 모두에게 – Li357

답변

0

내의 모든 _s 인스턴스에 대한 작업을 참조하십시오. getElementsByClassName에 의해 반환 된 배열과 유사한 요소의 개체와 일치하는 모든 요소를 ​​반복합니다.

window.onload = function yourFunction(){ 
    var elements = document.getElementsByClassName('icon'); 
    if (elements){ 
     for (var i = 0; i<elements.length; i++){ 
     elements[i].innerHTML = elements[i].innerHTML.replace(/_s\.png/g, ".png"); 
     } 
    } 
    setTimeout(yourFunction, 5000); 
} 

yourFunction(); 
+1

코드에 액세스 할 이상 반복 등의 특정 요소에 액세스 할 수 첨자를 사용해야합니다. – Li357

+0

내가'for'이 필요한 이유에 작은 설명을 추가했습니다, 감사합니다. –

+0

'if (elements)'를 제거하면 어떻게됩니까? –

관련 문제