오늘 인터넷에서 ClassName을 기반으로 요소를 가져오는 스크립트를 보았습니다. 나중에 사용할 수 있도록 여기에 기록해 두었습니다.
var getElementsByClassName = function(searchClass, node, tag) {
if (document.getElementsByClassName) {
return document.getElementsByClassName(searchClass)
} else {
node = node || document; ;
var 클래스 = searchClass.split(" "),
elements = (tag === "*" && node.all) ? node.all : node.getElementsByTagName(tag),
patterns = [],
returnElements = [],
current,
match;
var i = class.length;
while (--i >= 0) {
패턴. 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; k 일치 = 패턴 [k].test(current.className);
if (!match) break
}
if (match) returnElements.push(current)
}
return returnElements;
}
}
DOM의 GetElementsByClassName은 다음과 같이 설명됩니다. DOM API는 요소를 가져오는 세 가지 방법(getElementById, getElementsByName, getElementsByTagName)을 제공합니다. CSS를 자주 작성하는 사람들은 자연스럽게 질문을 갖게 됩니다. 불행히도 DOM1/2에는 그런 메소드가 없습니다. 프로토타입은 DOM 메소드를 아주 일찍 확장하고 getElementsByClassName을 추가했습니다. 메소드 이름으로 보면 매우 정통적인 것으로 보이며 이전 세 메소드의 이름은 다음과 같습니다. 코드를 분석해봐도 여전히 getElementsByTagName을 통해 구현되는 것으로 나타났습니다. 이 메서드는 모든 요소를 순회하고 요소에 대상 스타일 클래스 이름이 포함되어 있는지 검색하고 조건을 충족하는 요소 배열을 반환해야 하기 때문에 우아하지 않습니다. 검색해 봤지만 더 우아하고 효율적인 대안을 찾을 수 없었습니다.
var elems = ($(parentElement)||document.body).getElementsByTagName("*");
var result=[]
for (i=0; j=elems[i]; i ){
if ((" " j.className " ").indexOf(" " className " ")!=-1){
result.push(j)
}
}
결과 반환
}
//특정 클래스를 가져오는 데 적합합니다. HTML 블록에 포함된 className
this.d= oBox || document;
var children = this.d.getElementsByTagName('*')
var elements = new Array();
for (var ii = 0; ii var child = children[ii]
var classNames = child.className.split(' ' );
for (var j = 0; j if (classNames[j] == className) {
elements.push(child)
break ;
}
}
}
return elements;
}
document.getElementsByType = function(sTypeValue,oBox) {
//동일한 값을 얻는 데 적합합니다. HTML 블록 내의 콘텐츠 입력, 스크립트, 링크 등과 같은 특정 유형의 모든 HTML 요소
this.d= oBox || document
var children = this.d.getElementsByTagName('* ') || document.all;
var elements = new Array();
for (var ii = 0; ii if (children[ii].type == sTypeValue) {
elements.push(children[ii]);
}
}
return elements
}
function $() {
var elements = new Array( );
for (var ii = 0; ii var element = 인수[ii]
if (typeof element == 'string ')
element = document.getElementById(element);
if (arguments.length == 1)
return 요소;
elements.push(element)
return 요소;
}
$Cls = 함수(s,o){
return document.getElementsByClassName(s,o)
}; (s,o){
return document.getElementsByType(s,o);
};
$Tag = function (s,o){
this.d=o || document;
return this.d.getElementsByTagName(s);
$Name = function(s){ //name 메소드는 전체 문서에만 사용할 수 있습니다. 제한됨
return document.getElementsByName(s)

去掉重复并排序的方法:1、使用“Array.from(new Set(arr))”或者“[…new Set(arr)]”语句,去掉数组中的重复元素,返回去重后的新数组;2、利用sort()对去重数组进行排序,语法“去重数组.sort()”。

本篇文章给大家带来了关于JavaScript的相关知识,其中主要介绍了关于Symbol类型、隐藏属性及全局注册表的相关问题,包括了Symbol类型的描述、Symbol不会隐式转字符串等问题,下面一起来看一下,希望对大家有帮助。

怎么制作文字轮播与图片轮播?大家第一想到的是不是利用js,其实利用纯CSS也能实现文字轮播与图片轮播,下面来看看实现方法,希望对大家有所帮助!

本篇文章给大家带来了关于JavaScript的相关知识,其中主要介绍了关于对象的构造函数和new操作符,构造函数是所有对象的成员方法中,最早被调用的那个,下面一起来看一下吧,希望对大家有帮助。

本篇文章给大家带来了关于JavaScript的相关知识,其中主要介绍了关于面向对象的相关问题,包括了属性描述符、数据描述符、存取描述符等等内容,下面一起来看一下,希望对大家有帮助。

方法:1、利用“点击元素对象.unbind("click");”方法,该方法可以移除被选元素的事件处理程序;2、利用“点击元素对象.off("click");”方法,该方法可以移除通过on()方法添加的事件处理程序。

本篇文章给大家带来了关于JavaScript的相关知识,其中主要介绍了关于BOM操作的相关问题,包括了window对象的常见事件、JavaScript执行机制等等相关内容,下面一起来看一下,希望对大家有帮助。

本篇文章整理了20+Vue面试题分享给大家,同时附上答案解析。有一定的参考价值,有需要的朋友可以参考一下,希望对大家有所帮助。


핫 AI 도구

Undresser.AI Undress
사실적인 누드 사진을 만들기 위한 AI 기반 앱

AI Clothes Remover
사진에서 옷을 제거하는 온라인 AI 도구입니다.

Undress AI Tool
무료로 이미지를 벗다

Clothoff.io
AI 옷 제거제

AI Hentai Generator
AI Hentai를 무료로 생성하십시오.

인기 기사

뜨거운 도구

메모장++7.3.1
사용하기 쉬운 무료 코드 편집기

Eclipse용 SAP NetWeaver 서버 어댑터
Eclipse를 SAP NetWeaver 애플리케이션 서버와 통합합니다.

에디트플러스 중국어 크랙 버전
작은 크기, 구문 강조, 코드 프롬프트 기능을 지원하지 않음

PhpStorm 맥 버전
최신(2018.2.1) 전문 PHP 통합 개발 도구

SublimeText3 중국어 버전
중국어 버전, 사용하기 매우 쉽습니다.
