요소의 전체 경로를 알고 있다면 실제로이 경로를 통해이 종류의 것을 정당화 할 것입니까? 대개 절대 경로와 관련이없는 일반적인 측면으로 요소를 수집하는 일이 번거롭기 때문입니다. 그리고 Sizzle과 같은 엔진을 사용하면이 경우 사용 사례가 표시되는지 잘 모르겠습니다. :-)
또한 요소를 움직일 때 어떻게 처리해야하는지 궁금합니다. 아마도 자신의 해시를 다시 배정하십시오. 아마도 추악 해지기 시작합니다.
접근 방식이 이 아니며은 런타임시 Javascript로 작성된 요소로 작동합니다. 당신은 재귀 하강 기능을 충분히 쉽게 사후에 할당 할 수 있습니다 : 오히려 항상 내용을 다시 생성 할 필요없이 미리 생성 된 내용에 명중 한 시간
function createIDs(element) {
var child;
if (!element.id) {
element.id = createElementID(element);
}
for (child = element.firstChild; child; child = child.nextSibling) {
if (child.nodeType == 1) { // Element
createIDs(child);
}
}
}
// Kick things off
createIDs(document.body);
합니다. 그냥 지적하는 것.
요점은 id가 노드의 PATH라는 것입니다. 따라서 DOM을 검색하기보다는 경로가 있다면 이미 해시드 ID로 존재합니다. – Louis
일반 old'childNodes [n]','parentNode' 등을 사용하는 것보다 경로를 다루는 것이 더 쉬운가요? – bobince
처음에 요소를 찾는 데 문제가 있습니까? 요소를 찾으면 참조를 저장할 수 있습니다. 따라서 기본적으로 동적으로 캐시를 작성하는 대신 처음부터 모든 요소를 검색합니다. – Kobi