특정 클래스 이름이있는 페이지의 모든 요소에 대해 JavaScript로 jQuery를 사용하지 않고 목록을 가져 오려고합니다. I 클래스 내 페이지에 세 개의 앵커 요소가왜 JavaScript의 getElementsByClassName이 배열이 아닌 객체를 제공합니까?
var expand_buttons = document.getElementsByClassName('expand');
console.log(expand_buttons, expand_buttons.length, expand_buttons[0]);
주 '확장'다음과 같이 그래서 저는 getElementsByClassName() 함수를 사용합니다. 이 CONSOLE.LOG()는 출력
[] 0 undefined
다음
다음에, 차기위한 I 자체 배열 expand_buttons 던져 이 갑자기
[NodeList[3]] 1
를 출력하고, I는 클릭
var newArray = new Array(expand_buttons);
console.log(newArray, newArray.length);
nodelist를 통해 페이지의 세 가지 '확장'앵커 요소의 속성을 확인합니다. w3schools test page에서 코드 작업을 수행 할 수 있다는 점도 주목할 가치가 있습니다.
실제로 document.getElementsByName을 사용하면 요소 배열을 출력 (콘솔에 출력)하지만 그 길이를 묻는 경우 0으로 표시됩니다. 마찬가지로 액세스하려고하면 array_name[0]
을 사용하는 배열 요소는 콘솔에 개체를 인쇄 할 때 배열의 요소가 분명히 있음에도 불구하고 'undefined'를 출력합니다.
누구에게 이것이 어떨까요? DOM 엘리먼트를 반복하고 싶습니다. 바닐라 자바 스크립트로 코딩을 연습하려고하기 때문에 지금은 jQuery를 피합니다.
감사합니다,
ParagonRG
해당 기능이 변경되지 않았는지 확인하십시오. –
DOM을 생성 한 후 또는 이전에 코드를 실행하고 있습니까? –
[w3schools와 조심하십시오.] (http://w3fools.com) – Pointy