2016-11-05 2 views
1

저는 javascript/jquery에 매우 익숙하며 아직 이해하지 못했습니다. 내가 코드 http://www.w3schools.com/howto/tryit.asp?filename=tryhow_css_js_dropdownJquery 드롭 다운 메뉴 설명

내가가이

window.onclick = function(event) { 
    if (!event.target.matches('.dropbtn')) { 

    var dropdowns = document.getElementsByClassName("dropdown-content"); 
    var i; 
    for (i = 0; i < dropdowns.length; i++) { 
     var openDropdown = dropdowns[i]; 
     if (openDropdown.classList.contains('show')) { 
     openDropdown.classList.remove('show'); 
     } 
    } 
    } 
} 
에 대한 거의 모든 것을 이해하는 의미의 일부를 이해할 수없는 것, 그러나, 나는 jQuery를 사용하여 드롭 다운 메뉴를 배우려고 노력하고있어 나는이 w3school 자습서를 발견

for 루프는 무엇이며 어떻게 작동하는지는 알지만, html 파일에서 divs를 생성 할 때 어떻게 동작하는지 이해할 수 없습니다. 예를 들어 var dropdowns에는 dropdown-content 클래스의 div가 있습니다. 그럼이 var은 길이 속성과 함께 for 루프에 사용되지만 그 var ..의 길이는 무엇인지 이해가 안돼 1인가요? 그리고 나서이 라인은 var openDropdown = dropdowns[i]입니까? var i0이지만 var 드롭 다운에서 무엇이 필요합니까?

답변

2
var dropdowns = document.getElementsByClassName("dropdown-content"); 

이렇게하면 I의 값이 0으로 초기화되는 색인 (0,1 ... 되 돌아 ... 정합 소자의 수에 따라)도

으로 반복 할 수있는 객체를 리턴 ... dropdown [i]를 사용하면 드롭 다운 [0]으로 바뀝니다. 일치하는 항목이 많으면 다시 똑같은 것을 쓰는 대신 작업을 수행하게됩니다.

희망 사항 thats help ... : D

+0

그래서 for 루프에서 dropdowns.length는 무엇입니까? 1? 그리고 드롭 다운 [i]은 무엇을 반환합니까? 그것은 '드롭 다운 콘텐츠'div입니까? 게다가 for 루프는 왜 여기에 사용 되는가, 왜 IF 기능이 아닌가? –

+1

예,'dropdown.length' 문'document.getElementsByClassName ("dropdown-content");'에 의해 검색된 객체 배열의 길이를 반환합니다 (여기에 해당 값 1과 추측 하듯이 'dropdown-content'div가 있음). loop for reason은 예에서와 같이 여러 개의 드롭 다운 메뉴를 가질 수 있으므로 일반화 된 예제와 'if'를 사용하는 단일 요소 테스트에 대한 예는 충분합니다. – RohitS