JS IN HTML의 CLASSES

HTML 브라우저를 읽을 때 DOM 모델을 생성합니다. 그러나, 대부분의 표준 HTML-속성은 각각의 객체의 속성입니다.

태그 같은 모습 예를 들어 , 다음 개체는 속성입니다 body.id = "page".

그러나이 변환 -하지 일대일. 모두 - 속성이 하나의 값과 속성이 상황이 있습니다. 또한 속성이며, 같은 이름의 속성이 생성되지 않도록 발생합니다.

한마디로 - HTML-DOM-속성과 특성이 일반적이지만, 항상 서로 일치하지, 그것은 그러한 속성을 이해하고, 그 속성이 그들과 함께 제대로 작동하는 것입니다해야합니다.

앞서 우리는 몇 가지 기본 속성을 DOM 노드를 보았다. 그러나, 기술적으로, 우리 중 누구도 제한하지 않습니다.

DOM 노드 - 자바 스크립트의 모든 객체처럼, 그것은 사용자 정의 속성과 메서드를 포함 할 수 있습니다, 따라서 개체입니다.

예를 들어, 우리는에서 작성할 document.body새 속성, 그리고 개체에 쓰기 :

또한 새로운 기능을 추가 할 수 있습니다 :

사용자 정의 속성과 메소드는 자바 스크립트에서 볼 수 있으며 해당 태그의 표시에 영향을주지 않습니다.

우리가주의 정의 DOM-특성을 보자 :

  • 임의의 값을 가질 수있다.
  • 속성의 이름은 민감 레지스터에.
  • DOM을-노드가 자바 스크립트 객체 있다는 사실로 인해 작업 할 수 있습니다.

DOM 요소는, 다른 한편으로는, 텍스트 속성을 가진 HTML - 태그에 해당합니다.

물론, 우리가 단지 노드, 요소, 텍스트 노드이나 의견이없는 약입니다.

속성에 대한 액세스는 표준 방법을 사용하여 수행됩니다 :

  • elem.hasAttribute(name) - 속성을 검사
  • elem.getAttribute(name) - 속성의 값을 취득합니다
  • elem.setAttribute(name, value) - 세트 속성
  • elem.removeAttribute(name) - 속성을 제거

이러한 방법은 HTML에있는 값으로 작동합니다.

또한 모든 속성은 속성을 사용하여 얻을 수있다 elem.attributes가상 오브젝트 유형 Attr의 배열을 포함한다.

속성과는 달리, 속성 :

  • 그들은 항상 문자열입니다.
  • 그들의 이름은 구분하지 않습니다 민감한 (그것의 HTML을)
  • innerHTML(오래된 IE 제외)

DOM-속성 및 예제 HTML 코드의 특성의 차이를 고려 :



아래의 예는 세트의 속성과 그 기능을 보여줍니다.





당신은 주 위의 코드를 실행하면

  1. getAttribute('About')- 속성 이름의 첫 글자는 About이름은 대소 문자를 구분하기 때문에, 바닥에,하지만 중요하지 않습니다 - HTML에서와 같이 대문자로 작성되었습니다.
  2. 우리는 어떤 속성 값에 쓸 수 있지만, 문자열로 변환됩니다. 개체는 자동으로 변환됩니다.
  3. 추가 후 속성에서 볼 수있는 innerHTML요소.
  4. 컬렉션 attributes속성을 가진 객체의 모든 속성이 들어 namevalue.

브라우저가 HTML을 읽고 DOM 모델을 만들 때 모든 속성 생성 표준 속성을.

예를 들어, 태그의 속성 'A'HTMLAnchorElement 다음 DOM 명세서에 기재된.

예를 들어,이 속성이 있습니다 "href". 또한, 보유 "id"는 HTMLElement의 명세서에 기재되어있는 모든 요소에 공통된 다른 속성.

모든 표준 DOM 속성은 속성으로 동기화되지만 항상 그런 동기화 그래서 가끔 우리는 당신이 속성이는 HTML에서 가치를 필요, 1 대 1 일어난다.

몇 가지 예를 생각해 보자.

동기화는 속성과 속성에 같은 값을 보장하지 않습니다.

더 읽기 :   MAC OS 용 프로그램 글꼴

예를 들어, 속성으로 어떻게되는지 "href"당신이 속성을 변경하는 경우 :

속성이 임의의 것일 수 있기 때문이고, 상기 속성은 href, W3C 규격에있어서, 참조 완료한다.

우리가 정확히 HTML의를 원한다면, 당신은 속성을 통해 이동해야합니다.

변경 일부 속성 업데이트 때문이다. 그러나이 예외가 아닌 규칙이다.

- 가장 일반적인 동기화 하나는 양면 : 재산이 아니라 그 반대의 경우도 마찬가지, 속성에 따라 달라집니다.

당신의 속성을 변경할 때 예를 들어, input.value속성을 input.getAttribute('value')변경하지 않습니다 :

즉 DOM-속성의 변화이며, value이 동일하게 유지, 속성은 영향을받지 않습니다.

그러나 속성을 변경하면 속성을 업데이트합니다 :

이 기능을 사용하는 것이 좋을 수 있습니다.

이 속성이 밝혀 input.getAttribute('value')사용자가 필드에 충전하고 속성이 변경된 후에도 원래 (초기)의 값을 저장한다.

예를 들어, 속성의 원래 의미를 취할 수 있으며, 값이 변경되었는지 확인하기 위해 속성을 비교합니다. 그리고, 필요에 따라 다시 녹음 property 속성 경우, 변경 사항을 폐기.

속성은 "class"속성에 해당합니다 className.

단어가 있기 때문에 "class"자바 스크립트에서 예약어 DOM을 설계 할 때하면 해당 속성이 호출 될 것을 결심한다 className.

예를 들면 :

그런데, 다른 재산보다라고 다른 속성이 있습니다. 예를 들어, 속성 for( ) 속성 명에 대응한다 htmlFor.

속성 class- 고유합니다. 그것은 두 가지 속성에 대한 많은 대응!

불편 문자열과 같은 클래스와 함께 작업 할 수 있습니다. 따라서,뿐만 아니라 className, 최신 브라우저에서 기능이 있습니다 classList.

속성 classList- 클래스와 함께 일할 수있는 객체입니다.

그것은 IE10 때문에 IE에서 지원되지만 미니 도서관 classList.js를 연결, IE8 +에서 에뮬레이트 할 수 있습니다.

방법 classList:

  • elem.classList.contains("class")- 반환 true/false요소 클래스가 있는지 여부에 따라 class.
  • elem.classList.add/remove("class") - 클래스를 추가 / 제거 class
  • elem.classList.toggle("class")- 클래스가있는 경우 class존재하지 않는 존재하는 경우, 추가 -을 제거합니다.

또한, 클래스을 정렬 할 수있다 for같은 classList의사 - 어레이 -.

예를 들면 :

각 요소는 다음과 같은 표준 기능 세트가 그것이 될 것이다 href, name하지만위한 이 될하는 src, alt등등합니다.

표준에 설명 된 기능의 정확한 세트는 일반적으로 우리는 우리의 속성이 될 수 HTML, 무엇을 사용하는 경우, 어느 정도 존재하는 - 아니.

DOM-속성은 사용자 지정 특성에 대해 생성되지 않습니다.

예를 들면 :

속성은이 요소에 대한 표준에서 설명하는 경우에 표준이다.

즉, 요소 할당하는 경우이며, 속성 href, 속성 img.href이의이 나타납니다. 으로, 그러나, 당신은 링크 할당하는 경우 속성을 alt:

사용자 지정 특성은 때때로 CSS에 사용됩니다.

은 "주문 상태"를 보여주는 다음의 예에서 속성이 사용됩니다 order-state:

왜 속성? 당신은 수업을했을 수 없습니다 .order-state-new, .order-state-pending, order-state-canceled?

물론,하지만 자바 스크립트에서 속성을 훨씬 쉽게 조작 할 수 있습니다.

당신이 주문을 취소해야하는 경우 예를 들어, 무슨 일이 있어도 조건 그는 지금입니다 - 그것은 코드를 만들 것입니다 :

클래스 용 - 위해 지금의 클래스를 알 필요가있다. 그리고 우리는 기존의 클래스를 제거하고 새로운 하나를 넣을 수 있습니다 :

... 즉, 초기 정보 및 더 많은 편지를 작성할 필요가 더 소요된다. 그것은 덜 편리합니다.

간단히 말해, 속성의 값 - 임의의 문자열 클래스 값 -이 '있다'또는 '아니오'는 "강력한"과의 특성이 JS와 CSS를 더 편리하게 수업이라는 것을 자연 그래서.

더 읽기 :   NOD32 서버 업데이트 (5)

사용자 지정 특성의 도움으로 자바 스크립트로 사용할 수 있습니다 데이터 항목에 매핑 할 수 있습니다.

일반적으로, 이것은로 시작하는 이름을 가진 속성의 도움으로 이루어집니다 data-예를 들어 :

HTML5 표준은 특정 속성을 허용 data-*하고 사용자 데이터를 보유합니다.

IE10-를 제외한 모든 브라우저, 이러한 속성은 속성에 관해서뿐만 아니라 특별한 속성과 특성에 관해서뿐만 아니라 액세스 할 수 있습니다 dataset:

주의 - 이름이 data-user-location변모했다 dataset.userLocation. 하이픈은 대문자로 변환됩니다.

이전 버전의 브라우저를 들어 현대적인 속성은 때때로 polifille이 필요합니다. 원칙적으로, 같은 polifill는 자바 스크립트하지만, 및 CSS 단지를 포함한다.

요소를 숨겨야이 속성은, 작업이 충분히 HTML이 CSS에서이를 지원하기 위해, 매우 간단합니다 :

위 IE11- 예로 실행하면