찾다
웹 프론트엔드프런트엔드 Q&A자바스크립트에서 DOM 요소를 얻는 방법

획득 방법: 1. ID 값을 통해 "document.getElementById(value)"를 얻습니다. 2. name 속성을 통해 "document.getElementsByName(value)"을 얻습니다. 3. "부모 노드 object.firstChild"를 얻습니다. 부모 노드 등을 통해 기다리세요.

자바스크립트에서 DOM 요소를 얻는 방법

이 튜토리얼의 운영 환경: Windows 7 시스템, JavaScript 버전 1.8.5, Dell G3 컴퓨터.

HTML DOM 노드 요소를 얻기 위한 JavaScript 방법 요약

웹 애플리케이션, 특히 Web2.0 프로그램 개발에서는 페이지에서 요소를 얻은 다음 스타일, 콘텐츠를 업데이트해야 하는 경우가 많습니다. , 요소 등. 업데이트할 요소를 구하는 방법이 해결해야 할 첫 번째 문제입니다. 다행스럽게도 JavaScript를 사용하여 노드를 얻는 방법은 여러 가지가 있습니다. 다음은 간략한 요약입니다(다음 방법은 IE7 및 Firefox2.0.0.11에서 테스트되고 전달되었습니다).

1 최상위 수준을 통해

을 얻습니다. 문서 노드( 1) document.getElementById(elementId): 이 방법은 노드의 ID를 통해 필요한 요소를 정확하게 얻을 수 있는 비교적 간단하고 빠른 방법입니다. 페이지에 동일한 ID를 가진 여러 노드가 포함되어 있으면 첫 번째 노드만 반환됩니다. document.getElementById(elementId):该方法通过节点的ID,可以准确获得需要的元素,是比较简单快捷的方法。如果页面上含有多个相同id的节点,那么只返回第一个节点。

如今,已经出现了如prototype、Mootools等多个JavaScript库,它们提供了更简便的方法:$(id),参数仍然是节点的id。这个方法可以看作是document.getElementById()的另外一种写法,不过$()的功能更为强大,具体用法可以参考它们各自的API文档。

(2)document.getElementsByName(elementName):该方法是通过节点的name获取节点,从名字可以看出,这个方法返回的不是一个节点元素,而是具有同样名称的节点数组。然后,我们可以通过要获取节点的某个属性来循环判断是否为需要的节点。

例如:在HTML中checkbox和radio都是通过相同的name属性值,来标识一个组内的元素。如果我们现在要获取被选中的元素,首先获取改组元素,然后循环判断是节点的checked属性值是否为true即可。

(3)document.getElementsByTagName(tagName):该方法是通过节点的Tag获取节点,同样该方法也是返回一个数组,例如:document.getElementsByTagName('A')将 会返回页面上所有超链接节点。在获取节点之前,一般都是知道节点的类型的,所以使用该方法比较简单。但是缺点也是显而易见,那就是返回的数组可能十分庞 大,这样就会浪费很多时间。那么,这个方法是不是就没有用处了呢?当然不是,这个方法和上面的两个不同,它不是document节点的专有方法,还可以应 用其他的节点,下面将会提到。

2、通过父节点获取

(1)parentObj.firstChild:如果节点为已知节点(parentObj)的第一个子节点就可以使用这个方法。这个属性是可以递归使用的,也就是支持parentObj.firstChild.firstChild.firstChild...的形式,如此就可以获得更深层次的节点。

(2)parentObj.lastChild:很显然,这个属性是获取已知节点(parentObj)的最后一个子节点。与firstChild一样,它也可以递归使用。
           在使用中,如果我们把二者结合起来,那么将会达到更加令人兴奋的效果,即:parentObj.firstChild.lastChild.lastChild...

(3)parentObj.childNodes:获取已知节点的子节点数组,然后可以通过循环或者索引找到需要的节点。

注意:经测试发现,在IE7上获取的是直接子节点的数组,而在Firefox2.0.0.11上获取的是所有子节点即包括子节点的子节点。

(4)parentObj.children:获取已知节点的直接子节点数组。

注意:经测试,在IE7上,和childNodes效果一样,而Firefox2.0.0.11不支持。这也是为什么我要使用和其他方法不同样式的原因。因此不建议使用。

(5)parentObj.getElementsByTagName(tagName):使用方法不再赘述,它返回已知节点的所有子节点中类型为指定值的子节点数组。例如:parentObj.getElementsByTagName('A')返回已知的子节点中的所有超链接。

3、通过临近节点获取

(1)neighbourNode.previousSibling:获取已知节点(neighbourNode)的前一个节点,这个属性和前面的firstChild、lastChild一样都似乎可以递归使用的。

(2)neighbourNode.nextSibling:获取已知节点(neighbourNode)的下一个节点,同样支持递归。

4、通过子节点获取

(1)childNode.parentNode

요즘에는 $(id)라는 더 간단한 메소드를 제공하는 프로토타입 및 Mootools와 같은 많은 JavaScript 라이브러리가 등장했으며 매개변수는 여전히 노드의 ID입니다. 이 메소드는 document.getElementById()를 작성하는 또 다른 방법으로 간주될 수 있지만 $()의 기능이 더 강력합니다. 구체적인 사용법은 해당 API 문서를 참조하세요. 🎜🎜(2) document.getElementsByName(elementName): 이 메서드는 이름을 통해 노드를 가져옵니다. 이름에서 알 수 있듯이 이 메서드는 노드 요소가 아니라 동일한 요소를 반환합니다. 이름. 노드 배열. 그런 다음 노드의 특정 속성을 반복하여 필요한 노드인지 확인할 수 있습니다. 🎜🎜예: HTML에서 체크박스와 라디오는 모두 동일한 이름 속성 값을 사용하여 그룹의 요소를 식별합니다. 지금 선택한 요소를 가져오려면 먼저 섞인 요소를 가져온 다음 루프를 통해 노드의 확인된 속성 값이 true인지 확인합니다. 🎜🎜 (3) document.getElementsByTagName(tagName): 이 메서드는 태그를 통해 노드를 가져옵니다. 예를 들어 document.getElementsByTagName('A')는 모든 하이퍼링크를 반환합니다. 페이지의 노드. 노드를 얻기 전에 일반적으로 노드의 유형이 알려져 있으므로 이 방법을 사용하는 것이 비교적 간단합니다. 그러나 단점도 분명합니다. 즉, 반환된 배열이 매우 커서 많은 시간을 낭비할 수 있다는 것입니다. 그렇다면 이 방법은 쓸모가 없는 걸까요? 물론 그렇지 않습니다. 이 방법은 위의 두 가지 방법과 다릅니다. 이는 문서 노드의 고유한 방법이 아니며 아래에서 언급할 다른 노드에도 적용할 수 있습니다. 🎜🎜🎜2. 부모 노드를 통해 🎜🎜🎜을 얻습니다. (1) parentObj.firstChild: 이 방법은 해당 노드가 알려진 노드(parentObj)의 첫 번째 자식 노드인 경우 사용할 수 있습니다. 이 속성은 재귀적으로 사용될 수 있습니다. 즉, parentObj.firstChild.firstChild.firstChild... 형식을 지원하므로 더 깊은 노드를 얻을 수 있습니다. 🎜🎜(2) parentObj.lastChild: 분명히 이 속성은 알려진 노드(parentObj)의 마지막 하위 노드를 가져오는 것입니다. firstChild와 마찬가지로 재귀적으로 사용할 수도 있습니다.
사용 중 두 가지를 결합하면 다음과 같은 더 흥미로운 효과를 얻을 수 있습니다. parentObj.firstChild.lastChild.lastChild...🎜🎜 (3) parentObj.childNodes : Get 알려진 노드의 자식 노드 배열을 찾은 다음 루핑이나 인덱싱을 통해 필요한 노드를 찾습니다. 🎜🎜참고: 테스트 결과 IE7에서는 직접 하위 노드의 배열을 얻은 반면, Firefox2.0.0.11에서는 하위 노드의 하위 노드를 포함한 모든 하위 노드를 얻은 것으로 나타났습니다. 🎜🎜(4) parentObj.children: 알려진 노드의 직접 하위 노드 배열을 가져옵니다. 🎜🎜참고: 테스트 후 IE7에서는 childNodes와 동일한 효과가 있지만 Firefox2.0.0.11에서는 지원하지 않습니다. 이것이 제가 다른 방법들과 다른 스타일을 사용하는 이유입니다. 따라서 사용을 권장하지 않습니다. 🎜🎜(5) parentObj.getElementsByTagName(tagName): 사용법은 자세히 설명하지 않습니다. 알려진 노드의 모든 하위 노드 중 지정된 값의 하위 노드 배열을 반환합니다. 예를 들어 parentObj.getElementsByTagName('A')는 알려진 하위 노드의 모든 하이퍼링크를 반환합니다. 🎜🎜🎜3. 이웃 노드를 통해 🎜🎜🎜 가져오기 (1) neighbourNode.previousSibling: 알려진 노드(neighbourNode)의 이전 노드를 가져옵니다. 이 속성은 이전 firstChild와 동일한 것으로 보입니다. lastChild. 재귀적으로 사용됩니다. 🎜🎜(2) neighbourNode.nextSibling: 알려진 노드(neighbourNode)의 다음 노드를 가져오고 재귀도 지원합니다. 🎜🎜🎜4. 하위 노드를 통해 🎜🎜🎜 가져오기 (1) childNode.parentNode: 알려진 노드의 상위 노드를 가져옵니다. 🎜

위에 언급된 방법은 단지 몇 가지 기본 방법일 뿐입니다. Prototype과 같은 JavaScript 라이브러리를 사용하는 경우 노드의 클래스를 통해 가져오는 등 다른 방법을 얻을 수도 있습니다. 그러나 위의 다양한 방법을 유연하게 사용할 수 있다면 대부분의 프로그램을 다룰 수 있을 것이라고 생각합니다.

【추천 학습: javascript 고급 튜토리얼

위 내용은 자바스크립트에서 DOM 요소를 얻는 방법의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!

성명
본 글의 내용은 네티즌들의 자발적인 기여로 작성되었으며, 저작권은 원저작자에게 있습니다. 본 사이트는 이에 상응하는 법적 책임을 지지 않습니다. 표절이나 침해가 의심되는 콘텐츠를 발견한 경우 admin@php.cn으로 문의하세요.
usestate () 이해 : 국가 관리에 대한 포괄적 인 안내서usestate () 이해 : 국가 관리에 대한 포괄적 인 안내서Apr 25, 2025 am 12:21 AM

usestate () isareacthookusedtomanagestatefunctionalcomponents.1) itinitializesandupdatesstate, 2) workaledtthetThetThepleFcomponents, 3) canleadto'Stalestate'ifnotusedCorrecrally 및 4) performancanoptimizedUsecandusecaldates.

React 사용의 장점은 무엇입니까?React 사용의 장점은 무엇입니까?Apr 25, 2025 am 12:16 AM

Reactispopularduetoitscomponent 기반 아카데입, 가상, Richcosystem 및 declarativenature.1) 구성 요소 기반 ectureallowsforeusableuipieces, Modularityandmainability 개선 가능성.

React의 디버깅 : 일반적인 문제를 식별하고 해결합니다React의 디버깅 : 일반적인 문제를 식별하고 해결합니다Apr 25, 2025 am 12:09 AM

TodebugreactApplicationseffective, UsetheseStradegies : 1) 주소 propdrillingwithContapiorredux.2) handleaSnchronousOperationswithUsestAndUseefect, abortControllerTopReceConditions.3) 최적화 formanceSeMoAnduseCalbackTooid

React의 usestate () 란 무엇입니까?React의 usestate () 란 무엇입니까?Apr 25, 2025 am 12:08 AM

usestate () inreactAllowsStateManagementInfunctionalComponents.1) itsimplifiessTatemanagement, 2) usethepRevCountFunctionToupDatesTestateSpreviousValue, PropeingStaleScallanceBackferperperperperperperperperperperperperpertoptiMizatio

usestate () vs. usereducer () : 주 요구에 맞는 올바른 후크 선택usestate () vs. usereducer () : 주 요구에 맞는 올바른 후크 선택Apr 24, 2025 pm 05:13 PM

chelectionSimple, IndependentStateVaribles; useUserEducer () useuserEducer () forcomplexStateLogicor () whenStatedSonpreviousState.1) usestate () isidealforsimpleupdatesliketogglingabooleorupdatingacounter.2) usbetterformanagingmentiplesub-vvalusorac

usestate ()로 상태 관리 : 실용적인 자습서usestate ()로 상태 관리 : 실용적인 자습서Apr 24, 2025 pm 05:05 PM

Usestate는 클래스 구성 요소 및 기타 상태 관리 솔루션보다 우수합니다. 국가 관리를 단순화하고 코드를 더 명확하게하고 읽기 쉽고 React의 선언적 특성과 일치하기 때문입니다. 1) Usestate는 함수 구성 요소에서 상태 변수를 직접 선포 할 수있게합니다. 2) 후크 메커니즘을 통해 다시 렌더링하는 동안 상태를 기억합니다.

usestate ()를 사용하고 대체 상태 관리 솔루션을 고려할 때usestate ()를 사용하고 대체 상태 관리 솔루션을 고려할 때Apr 24, 2025 pm 04:49 PM

useUsestate () forlocalcomponentStateManagement; 고려 사항 forglobalstate, complexlogic, orperformanceissues.1) usestate () isidealforsimple, localstate.2) useglobalstatesolutionslikereduxorcontextforsharedstate.3) optforredooxtoolkitormobxcomcoccomcoccomcoccomcoccomcoccomcoccomcoccomcoccomporccomcoccomporccomcoccomport

React의 재사용 가능한 구성 요소 : 코드 유지 관리 및 효율성 향상React의 재사용 가능한 구성 요소 : 코드 유지 관리 및 효율성 향상Apr 24, 2025 pm 04:45 PM

reusablecomponentsinreacececodemainabenabilityandefficiency는 hallowingesamecomponentacrossdifferentpartsofanapplicationorprojects.1) 그들을 retuduceredundancyandsimplifyupdates.2) theyseconsistencyinuserexperience.3) theyquireoptim

See all articles

핫 AI 도구

Undresser.AI Undress

Undresser.AI Undress

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

AI Clothes Remover

AI Clothes Remover

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

Undress AI Tool

Undress AI Tool

무료로 이미지를 벗다

Clothoff.io

Clothoff.io

AI 옷 제거제

Video Face Swap

Video Face Swap

완전히 무료인 AI 얼굴 교환 도구를 사용하여 모든 비디오의 얼굴을 쉽게 바꾸세요!

뜨거운 도구

SecList

SecList

SecLists는 최고의 보안 테스터의 동반자입니다. 보안 평가 시 자주 사용되는 다양한 유형의 목록을 한 곳에 모아 놓은 것입니다. SecLists는 보안 테스터에게 필요할 수 있는 모든 목록을 편리하게 제공하여 보안 테스트를 더욱 효율적이고 생산적으로 만드는 데 도움이 됩니다. 목록 유형에는 사용자 이름, 비밀번호, URL, 퍼징 페이로드, 민감한 데이터 패턴, 웹 셸 등이 포함됩니다. 테스터는 이 저장소를 새로운 테스트 시스템으로 간단히 가져올 수 있으며 필요한 모든 유형의 목록에 액세스할 수 있습니다.

SublimeText3 Linux 새 버전

SublimeText3 Linux 새 버전

SublimeText3 Linux 최신 버전

DVWA

DVWA

DVWA(Damn Vulnerable Web App)는 매우 취약한 PHP/MySQL 웹 애플리케이션입니다. 주요 목표는 보안 전문가가 법적 환경에서 자신의 기술과 도구를 테스트하고, 웹 개발자가 웹 응용 프로그램 보안 프로세스를 더 잘 이해할 수 있도록 돕고, 교사/학생이 교실 환경 웹 응용 프로그램에서 가르치고 배울 수 있도록 돕는 것입니다. 보안. DVWA의 목표는 다양한 난이도의 간단하고 간단한 인터페이스를 통해 가장 일반적인 웹 취약점 중 일부를 연습하는 것입니다. 이 소프트웨어는

ZendStudio 13.5.1 맥

ZendStudio 13.5.1 맥

강력한 PHP 통합 개발 환경

안전한 시험 브라우저

안전한 시험 브라우저

안전한 시험 브라우저는 온라인 시험을 안전하게 치르기 위한 보안 브라우저 환경입니다. 이 소프트웨어는 모든 컴퓨터를 안전한 워크스테이션으로 바꿔줍니다. 이는 모든 유틸리티에 대한 액세스를 제어하고 학생들이 승인되지 않은 리소스를 사용하는 것을 방지합니다.