인터넷에서 가장 인기 있는 버전은 Scott Andrew의 버전입니다. 자바스크립트 커뮤니티에서 한때 대회를 열었다고 합니다(이 이벤트는 Pro Javascript Techniques 100페이지에서 볼 수 있습니다). PPK 검색 웹사이트에서 이벤트 추가 및 이벤트 제거 기능을 요청했는데 그가 승자였습니다. 그의 구현은 다음과 같습니다.
코드는 다음과 같습니다.
}
(8) getElementsByClass() 저는 수집하는 습관이 있고 많은 버전을 가지고 있는데, 마침내 스스로 브레인스토밍하고 구현했습니다. 다음은 내 구현입니다.
var getElementsByClassName = function (searchClass , node,tag) {
if(document.getElementsByClassName){
return document.getElementsByClassName(searchClass)
}else{
node = node || 태그 || "*";
var 클래스 = searchClass.split(" "),
elements = (tag === "*" && node.all)? node.getElementsByTagName(tag) ,
patterns = [],
returnElements = [],
current,
match
var i =classes.length
while(--i >= 0) {
patterns.push(new RegExp("(^|\s)" 클래스[i] "(\s|$)"))
}
var j = elements.length; >while( --j >= 0){
current = elements[j];
match = false
for(var k=0, kl=patterns.length; kmatch = 패턴[k].test(current.className);
if (!match) break
}
if (match) returnElements.push(current); }
return returnElements;
}
}
(7) cssQuery()
별칭은 Dean Edwards가 처음 구현한 getElementsBySeletor입니다. Prototype.js, JQuery 및 기타 클래스 라이브러리에는 해당 구현이 있습니다. 그 중 JQuery는 이를 $() 선택기에 통합했으며 그 명성은 이전 버전보다 뛰어납니다. 그러나 IE8과 같은 최신 브라우저는 이미 querySelector 및 querySelectorAll 메소드를 구현했습니다. IE6 및 IE7이 폐기되면 쓸모가 없게 됩니다. Wuyou는 구현 원칙에 대해 설명했습니다. 너무 길어서 내용이 잘 안 나오네요. 자세한 내용은 원저자 홈페이지에서 확인하시면 됩니다.
(6) 토글()
은 DOM 요소를 표시하거나 숨기는 데 사용됩니다.
var el = document.getElementById(obj);
if ( el.style.display != 'none' ) {
el.style.display = 'none''
}
else {
el .style.display = '';
}
}
(5) insertAfter()
DOM은 insertBefore만 제공합니다. 우리에게 꼭 필요한 insertAfter를 직접 구현해 보세요. 하지만 이제 Firefox를 제외한 모든 브라우저에서는 insertAdjacentElement가 더 나은 선택이라고 생각합니다. Jeremy Keith 버전은 다음과 같습니다.
코드 복사
코드는 다음과 같습니다. function insertAfter( parent, node, referenceNode) {
parent.insertBefore(node, referenceNode.nextSibling)
}
(4) inArray()
은 판단에 사용됩니다. 배열에 특정 값이 있는지 확인합니다. 다음 메서드는 Prototype 클래스 라이브러리에서 가져옵니다.
for (var i=0,l = this.length ; i
if (this[i] === value) {
return true; }
}
return false;
};
다른 버전: