Element#

Element.className#

Właściwość className zwraca lub ustawia wartość w atrybucie class danego elementu i wpływa na jego klasy.

Opis działania#

Samo wywołanie i poszczególne jego części najlepiej objaśnić na zapisie składniowym:

  1. L
  2. K
  3. T'
  4. T
  5. A
  6. O
  7. Z'
  8. Z
  9. #
var classes = element.className; // getting
element.className = new_value; // setting

gdzie poszczególne człony oznaczają:

Odczytanie i zmiana wartości dla właściwości className polega na zasadzie odzwierciedlenia zawartości atrybutu z przekazaniem nazwy lokalnej "class" (szczegóły).

Specyfikacja HTML5 wprowadza pojęcie globalnego atrybutu class, ale nie definiuje dla niego żadnej nowej właściwości DOM, a jedynie informuje o odzwierciedleniu (reflect) zawartości tego atrybutu przez już istniejące właściwości className oraz Element.classList definiowane przez aktualną specyfikację DOM4.

Modyfikowanie (dodawanie/usuwanie/zastępowanie/przełączanie) poszczególnych klas w elemencie najwygodniej przeprowadzić przy użyciu dedykowanych metod w skojarzonym zestawie słów DOM, który otrzymamy poprzez odczyt właściwości Element.classList.

Nazwa "className" została użyta dla tej właściwości zamiast "class" z powodu konfliktów ze słowem kluczowym "class" w wielu innych językach programowania, które mogą być wykorzystywane do manipulowania drzewem DOM. Samo słowo "class" jest także zarezerwowane na potrzeby przyszłych wydań specyfikacji ECMAScript.

Prosty przykład:

  1. L
  2. K
  3. T'
  4. T
  5. A
  6. O
  7. Z'
  8. Z
  9. #
<script>

	var html = document.documentElement; // referencja do elementu HTML

	document.write(html); // [object HTMLHtmlElement]
	document.write("<br>");
	document.write(html.className); // "" - pusty łańcuch znakowy

	document.write("<br>");

	html.className = "test1 test2 test3"; // zmiana wartości atrybutu
	document.write(html.className); // test1 test2 test3

	document.write("<br><br>");

	document.write(Element.prototype.hasOwnProperty("className")); // true
	document.write("<br>");
	document.write(html.__proto__.__proto__.__proto__.hasOwnProperty("className")); // true
	document.write("<br>");
	document.write(html.__proto__.__proto__.__proto__); // [object ElementPrototype]

</script>

Właściwość className dla węzła typu Element pojawia się dopiero w specyfikacji DOM4. W przeszłości była ona definiowana dla interfejsu HTMLElement w osobnej specyfikacji DOM Level 2 HTML.

Składnia Web IDL#

  1. L
  2. K
  3. T'
  4. T
  5. A
  6. O
  7. Z'
  8. Z
  9. #
interface Element : Node {
	attribute DOMString className;
}

Specyfikacje i inne materiały#

Pasek społecznościowy

SPIS TREŚCI AKTUALNEJ STRONY

Element (H1) Element.className (H2) Opis działania (H3) Składnia Web IDL (H3) Specyfikacje i inne materiały (H3)