두 개의 다른 탐색 패널에서 모든 앵커 요소를 선택해야합니다. 그렇게하는 가장 좋은 방법은 무엇입니까? 효과적인 &/또는 효율적입니다.Javascript : Two Div ID의 요소
옵션 1 : 각 탐색을 클래스로 설정하고, 클래스를 찾고 해당 클래스로 각 div 내의 모든 앵커를 가져올 수 있습니다.
옵션 2 : 각 nav에 ID를 설정할 수 있습니다. 웬일인지 각 div id에서 앵커 두 배열을 연결하는 데 문제가있었습니다. 어떤 아이디어가 왜 배열입니까? 전의.
<code>
var nav = document.getElementById("nav").getElementsByTagName("a");
var subnav = document.getElementById("subnav").getElementsByTagName("a");
var allnav = nav.concat(subnav); // Didn't seem to work
// neither did this. Just seemed to break.
for(var i=0;i<subnav.length;i++){
nav.push(subnav[i]);
}
</code>
옵션 3 : ID별로 각 div를 가져옵니다. 루프 스루, 앵커 얻기, 적절한 조치 수행을 위해 함수로 보냅니다.
어느 것이 더 빠르고 더 적은 자원을 사용합니까? &/또는 어느 것이 더 유지 보수가 가능하다고 생각합니까?
jQuery와 함께 훌륭한 방법이 있다는 것을 알고 있지만 스 니펫이 매우 짧기 때문에 몇 가지 작은 기능에 전체 라이브러리를 추가하지 않는 것이 좋습니다.
도움 주셔서 감사합니다.
호스트 객체를 기본 객체와 같이 처리하지 말고 * for..in *을 사용하지 마십시오. NodeLists는 Array에 복사하기에 적합하지 않은 이름 지정된 속성을가집니다 (예 : * item * 메소드). for 루프와 카운터를 사용하여 반복합니다. – RobG
그것은 내가 NodeList를 Array로 변환하는 것을 본 적이있는 가장 이상한 방법입니다. 실제로, 나는 var arr = [];을'var arr = Array (obj.length); '로 변경 했더라도 동작하지 않을 것이라고 확신합니다 ... –
@ alpha123 왜 그렇게 동작할까요? ? – Raynos