향상된 정밀도로 DOM 요소에서 CSS 경로 검색
제공된 함수는 지정된 DOM 요소에 대한 CSS 경로를 생성하려고 시도합니다. 그러나 출력의 특이성이 부족하여 형제 내에서 요소의 위치를 캡처하지 못합니다. 이 문제를 해결하려면 보다 정교한 접근 방식이 필요합니다.
향상된 CSS 경로 기능
아래에 제시된 향상된 기능은 원래 제한 사항을 해결합니다.
var cssPath = function(el) { if (!(el instanceof Element)) return; var path = []; while (el.nodeType === Node.ELEMENT_NODE) { var selector = el.nodeName.toLowerCase(); if (el.id) { selector += '#' + el.id; path.unshift(selector); break; } else { var sib = el, nth = 1; while (sib = sib.previousElementSibling) { if (sib.nodeName.toLowerCase() == selector) nth++; } if (nth != 1) selector += ":nth-of-type("+nth+")"; } path.unshift(selector); el = el.parentNode; } return path.join(" > "); }
향상 및 이점:
사용 예:
이 향상된 기능을 활용하면 이제 특정 요소에 대해 보다 정확한 CSS 경로를 얻을 수 있습니다.
console.log(cssPath(document.getElementsByTagName('a')[123])); // Output: "html > body > div#div-id > div.site:nth-child(1) > div.clearfix > ul.choices > li:nth-child(5)"
위 내용은 DOM 요소에 대한 정확한 CSS 경로를 어떻게 생성할 수 있나요?의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!