JavaScript 데이터 요소 수집과 array_javascript 기술의 차이점에 대한 설명

WBOY
풀어 주다: 2016-05-16 18:27:55
원래의
1107명이 탐색했습니다.

getElementsByName(name) 메소드는 페이지에서 name 속성을 가진 모든 요소를 ​​가져오는 것이지만, 이 메소드로 얻는 내용은 IE와 표준 브라우저에서 다릅니다. IE에서 getElementsByName(name) 메소드로 얻은 요소는 고유한 이름 속성을 갖습니다. 즉, 표준 브라우저에서 양식에 나열된 모든 요소는 getElementsByName에서 얻은 요소입니다. (이름) 메소드는 name 속성을 가진 요소입니다(이미 이 속성이 있고 이 속성이 인위적으로 추가되었습니다). 따라서 이 방법을 사용하여 IE 브라우저의 페이지에서 이름이 있는 모든 요소를 ​​가져오는 경우 이미 이 속성(양식 클래스 요소)이 있는 요소만 가져올 수 있지만 인위적으로 추가된 이름 속성 요소는 가져올 수 없습니다. 제거됩니다. 표준 브라우저는 이를 수행하지 않으며 페이지에서 name 속성이 있는 모든 요소를 ​​제거합니다.

getElementsByName() 및 getElementsByTagName() 메소드의 공통점은 획득한 페이지 요소를 배열이 아닌 요소 컬렉션으로 구성한다는 것입니다(console.log(를 사용하여 인쇄할 때는 배열임에도 불구하고). ) 방화범 형태로). 획득한 데이터 결과를 보기 위해 Object.porototype.toString.apply(arr) 메소드를 사용하면 "[object Array]" 대신 "[object HTMLCollection]"을 반환합니다. 이런 방식으로 이 두 메소드로 얻은 요소 컬렉션을 배열의 일부 메소드를 호출하여 배열처럼 작동할 수는 없으며, 대신 이 컬렉션을 배열 형태로 변환하여 작동할 수 있습니다. 배열 내부의 요소가 처리됩니다.

이 요소 컬렉션에는 다음과 같은 속성과 메서드가 있습니다.

1. 요소 인덱스(index)

2. 요소 컬렉션의 길이(length)

3. item() 메서드: 다양한 인덱스 값을 전달하여 컬렉션의 해당 요소를 얻을 수 있습니다. IE에는 그러한 방법이 없습니다.

4. FF에는 name 속성이 있는 첫 번째 요소를 가져오는 명명된Item(name) 메서드도 있습니다. 이 방법은 FF에서만 사용할 수 있습니다.

요소 모음을 배열 형식으로 변환하는 방법은 여러 가지가 있습니다. 인터넷에서 검색하면 여러 가지 방법을 찾을 수 있습니다. Situ Zhengmei의 블로그 게시물 "JS가 배열과 유사한 객체를 배열 객체로 변환"에서도 교훈을 얻을 수 있습니다.

배열 변환 방법은 다음과 같습니다.

코드 복사 코드는 다음과 같습니다.

function makeArray(arr){
if(arr.item){
var len = arr.length;
var array = []
while(len--);
array[len] = arr[len];
}
return array;
}
return Array.prototype.slice.call(arr); 🎜>
이것은 작은 예이며 변환된 결과를 볼 수 있습니다.



[Ctrl A 모두 선택 참고: 외부 J를 도입해야 하는 경우 실행하려면 새로 고쳐야 합니다 ]
관련 라벨:
원천:php.cn
본 웹사이트의 성명
본 글의 내용은 네티즌들의 자발적인 기여로 작성되었으며, 저작권은 원저작자에게 있습니다. 본 사이트는 이에 상응하는 법적 책임을 지지 않습니다. 표절이나 침해가 의심되는 콘텐츠를 발견한 경우 admin@php.cn으로 문의하세요.
최신 이슈
인기 튜토리얼
더>
최신 다운로드
더>
웹 효과
웹사이트 소스 코드
웹사이트 자료
프론트엔드 템플릿
회사 소개 부인 성명 Sitemap
PHP 중국어 웹사이트:공공복지 온라인 PHP 교육,PHP 학습자의 빠른 성장을 도와주세요!