DOMTokenList#

DOMTokenList.remove()#

Metoda remove() usuwa przekazane słowa z uporządkowanego zestawu słów skojarzonego z danym zestawem słów DOM, jeśli się w nim znajdują.

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. #
domTokenList.remove(tokens...);

gdzie poszczególne człony oznaczają:

Algorytm wywołania metody remove(tokens) nie jest skomplikowany. Dla lepszego zrozumienia tematu prezentuję go w całości:

  1. Dla każdego (for each) słowa token w tokens wykonaj poniższe podkroki:

    1. Jeśli token jest pustym łańcuchem znakowym, to zrzuć wyjątek "SyntaxError".
    2. Jeśli token zawiera jakiekolwiek białe znaki ASCII, to zrzuć wyjątek "InvalidCharacterError".
  2. Dla każdego (for each) token w tokens usuń token z uporządkowanego zestawu słów skojarzonego z obiektem kontekstu.
  3. Uruchom kroki aktualizacji.

Wywołanie metody remove() będzie automatycznie aktualizowało powiązany z zestawem słów DOM atrybut, przez co jego oryginalna zawartość (łańcuch znakowy) może ulec zmianie, nawet w sytuacji całkowitego pominięcia argumentu. Przekazanie wielu argumentów do metody utworzy jeden zapis zmian w obserwatorze zmian.

Przy usuwaniu pojedynczego słowa z uporządkowanego zestawu słów alternatywnie można skorzystać z podobnie działającej metody DOMTokenList.toggle().

Prosty przykład:

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

	function showTokens(set){
		return Array.prototype.slice.call(set).join(" ");
	}

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

	document.write(html.classList.constructor); // function DOMTokenList() { [native code] }
	document.write("<br>");
	document.write(html.classList.length); // 0

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

	html.className = "Test1 Test2 Test3"; // ustawiamy wartość atrybutu class

	document.write(showTokens(html.classList)); // Test1 Test2 Test3
	document.write("<br>");
	document.write(html.classList.length); // 3

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

	html.classList.remove("Test1", "Test2"); // usuwamy konkretne słowa

	document.write(showTokens(html.classList)); // Test3
	document.write("<br>");
	document.write(html.classList.length); // 1

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

	html.classList.remove("Test2", "Test3"); // usuwamy konkretne słowa

	document.write(showTokens(html.classList)); // "" - pusty łańcuch znakowy
	document.write("<br>");
	document.write(html.classList.length); // 0

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

	try{ // Usuwamy pusty łańcuch znakowy z uporządkowanego zestawu słów
		html.classList.remove("");
	}
	catch(e){
		document.write("Przekazanie do metody remove() pustego łańcuch znakowego zrzuca błąd:" + "<br>");
		document.write(e); // opis zależny od przeglądarki
		document.write("<br>");
		document.write(e.constructor); // function DOMException() { [native code] }
	}

</script>

Na chwilę obecną jedynie przeglądarki Firefox i Chrome obsługują metodę remove() zgodnie z wymaganiami specyfikacji DOM4. W pozostałych programach nie można przekazywać wielu argumentów do metody, gdyż brany pod uwagę jest tylko pierwszy z nich, a także całkowicie ich pomijać, bo zaowocuje to zrzuceniem błędu.

Metoda remove() pojawia się dopiero w specyfikacji DOM4.

Składnia Web IDL#

  1. L
  2. K
  3. T'
  4. T
  5. A
  6. O
  7. Z'
  8. Z
  9. #
interface DOMTokenList {
	void remove(DOMString... tokens);
}

Specyfikacje i inne materiały#

Pasek społecznościowy

SPIS TREŚCI AKTUALNEJ STRONY

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