Heim > Web-Frontend > js-Tutorial > setAttribute (W3C DOM -Kernmethode)

setAttribute (W3C DOM -Kernmethode)

Lisa Kudrow
Freigeben: 2025-02-21 09:58:10
Original
457 Leute haben es durchsucht

setAttribute (W3C DOM Core method)

setAttribute (W3C DOM -Kernmethode)

Gibt
zurück
void
löscht
Invaly_character_err, NO_MODIFICATION_ALLAWED_ERR
aus

Key Takeaways

  • Mit der SetAttribute -Methode in JavaScript können Entwickler Attribute und deren Werte in einem HTML -Element hinzufügen, ändern oder aktualisieren. Es ist ein Teil des Dokumentobjektmodells (DOM) und dauert zwei Parameter: den Attributnamen und sein Wert.
  • Die SetAttribut-Methode ist fallempfindlich und kann verwendet werden, um CSS-Stile und benutzerdefinierte Datenattribute zu ändern. Für Ereignishandler wird jedoch empfohlen, die AddEventListener -Methode anstelle von SetAttribute zu verwenden.
  • Achten Sie bei der Verwendung von Kamel-Namen in SetAttribute vorsichtig, da dies zu Inkonsistenzen in verschiedenen Browsern führen kann. Wenn ein Wert festgelegt wird, wird der Wert nicht analysiert, was bedeutet, dass eine Entitätsreferenzen oder ein anderes Markup als wörtlicher Text behandelt werden.

Beispiel

element.setAttribute('rel', 'me');
Nach dem Login kopieren
Nach dem Login kopieren
Nach dem Login kopieren

Das obige Beispiel legt ein REL -Attribut mit dem Wert ME auf einem Element fest.

Wenn das betreffende Element diese HTML wäre:

<a href="http://www.brothercake.com/">brothercake</a>
Nach dem Login kopieren

dann würde die obige Operation dazu führen:

<a href="http://www.brothercake.com/" rel="me">brothercake</a>
Nach dem Login kopieren

Argumente

Name (Domstring) Erforderlich

Der Name des Attributs zu erstellen oder ändern.

Wert (Domstring) Erforderlich

Der Zeichenfolgenwert für die Attribut.

Beschreibung

Setzen Sie ein neues Attribut mit dem angegebenen Namen und dem Wert für dieses Element.

Wenn bereits ein Attribut mit dem angegebenen Namen vorhanden ist, wird sein Wert ersetzt.

Wenn ein Wert festgelegt wird, wird der Wert nicht analysiert, sodass alle Entitätsreferenzen oder ein anderes Markup als wörtlicher Text behandelt werden. Um ein Attribut zu erstellen, das Entitäten enthält, schlägt die Spezifikation vor, einen Attrennoden mit geeigneten Text- und EntityReference -Knoten als Kinder zu erstellen, und fügen Sie ihn dann mit SetAttributenode zu einem Element hinzu, aber in der Praxis funktioniert dies jedoch selten (siehe ATT für Details).

Diese Methode dient zur Arbeit mit nicht-namedierten Attributen; Verwenden Sie zum Hinzufügen eines Namespated -Attributs stattdessen die DOM -2 -SetAttributens -Methode.

Seien Sie vorsichtig mit dem Kamel-Cased-Attributnamen

Sie sollten sorgfältig mit dem für alle Browser vorgesehenen Camel-Code-Namen verwenden, da in der Opera im XHTML-Modus ein Attribut mit einem von Kamelgezogenen Namen auf die entsprechende DOM-Eigenschaft festgelegt wird. Wenn Sie beispielsweise ein Attribut namens tabindex auf einen beliebigen Wert festlegen, hat es den Einfluss darauf, die Tabindex -Eigenschaft auf 0 zurückzusetzen (Standardwert), das ursprüngliche Tabindex -Attribut vollständig entfernt und ein neues Attribut mit dem Namen tabindex und der Erstellung eines neuen Attributs erstellen. angegebener Stringwert.

Dieses Verhalten liegt wahrscheinlich auf eine Inkonsistenz, in der die Fallempfindlichkeit im XHTML-Modus behandelt wird. In anderen Browsern (Firefox und Safari) erstellt dies ein neues Attribut namens Tabindex, während das ursprüngliche Tabindex -Attribut und seine entsprechende Tabindex -Eigenschaft unverändert bleibt.

Diese Anmerkung gilt nur für diese Browser im XHTML-Modus-im HTML-Modus2 ist das Namensargument von Fall, sodass Tabindex als Tabindex behandelt wird.

Zusätzlich kann der IE in HTML das Typ -Attribut eines Eingangselements nicht festlegen. Der Versuch, dies zu tun, macht einen Fehler (dieser Befehl wird nicht unterstützt). Es kann auch das Style-Attribut nicht festlegen (dies hat einfach keine Auswirkungen) und keine Ereignishandling-Attribute als Zeichenfolgen festlegen (um dies zu tun, hat keine Auswirkung, es sei denn, dieses Element hat bereits ein Ereignishandling-Attribut gleicher Name. In diesem Fall wird der Operation, der ein neues festlegt, den alten entfernen und nichts hinterlässt - obwohl GetatTribute den festgelegten String -Wert zurückgibt, gibt es keinen aktiven Ereignishandler im Element). IE kann jedoch Ereignisbehandlungsattribute festlegen, wenn eine Funktion als Wertargument übergeben wird, anstatt als Zeichenfolge:

element.setAttribute('rel', 'me');
Nach dem Login kopieren
Nach dem Login kopieren
Nach dem Login kopieren

Wenn diese Methode schließlich verwendet wird, um das SRC -Attribut eines Bildes festzulegen, ist der Wert, der anschließend von GetAttribute zurückgegeben wird, ein vollständig qualifizierter URI. Dies ist das gleiche wie sein Verhalten beim Abrufen eines SRC, das in statischer HTML festgelegt wurde. Bei der Festlegung des HREF eines Links ist der anschließende Wert der anschließende Wörtlichkeitswert, der festgelegt wurde. Dies unterscheidet sich von seinem Verhalten mit statischer HTML, bei dem der Wert als qualifizierter URI zurückgegeben wird.

Woher weiß ich, ob es funktioniert?

feststellen, ob diese Methode wie erwartet funktioniert, ist besonders schwierig, da es möglich ist, überhaupt ein Attribut eines Namens festzulegen, obwohl es möglicherweise nicht das erwartete Attribut ist. Zum Beispiel können Sie im Internet Explorer weiterhin ein Attribut namens Klasse festlegen und anschließend mit GetAttribute ('Klasse') abrufen, aber es entspricht nicht der Klassenname -Eigenschaft - es ist ein völlig separates Attribut, das keinen visuellen Unterschied zu Unterschied zu Unterschied zu Das Element.

In allen Browsern kann ein Attribut, das an einem Booleschen (z. B. deaktiviert) bewertet wird, nur auf true eingestellt werden - es hat keinen Einfluss. Dies ist ein korrektes Verhalten und daran, dass solche Attribute nur einen möglichen Wert haben sollten (dh deaktiviert = "deaktiviert") oder nicht definiert sind (daher sollte das Negieren von RemoveAttribute erfolgen). In Opera 9.5 wird der Attributwert anschließend als falsch zurückgegeben, aber das Element wird weiterhin deaktiviert. In Opera 9.0 wird der Wert weiterhin als deaktiviert zurückkehren, und im Internet Explorer wird der Wert weiterhin als boolean true zurückkehren. Dies sind genaue Reflexionen des Zustands des Elements, auch wenn sie ein wenig verwirrend sind! Da der IE diese Attribute jedoch als einen tatsächlichen booleschen Wert betrachtet, kann der Wert umgeschaltet werden (und das Element deaktiviert und entsprechend aktiviert).

element.setAttribute('rel', 'me');
Nach dem Login kopieren
Nach dem Login kopieren
Nach dem Login kopieren
Internet Explorer implementiert ein zweites Argument in SetAttribut, bei dem es sich um ein Fallempfindlichkeitsflag handelt, das den Wert 0 (Fall-unempfindlich) oder 1 (Standard, Fallempfindlichkeit) annehmen kann. Dieses Argument funktioniert wie im IE erwartet und betrifft keinen anderen Browser.

häufig gestellte Fragen zur SetAttribute W3C DOM -Kernmethode

Was ist die SetAttribute -Methode in JavaScript? Diese Methode wird verwendet, um Attribute und deren Werte in einem HTML -Element hinzuzufügen, zu ändern oder zu aktualisieren. Es dauert zwei Parameter: den Attributnamen und seinen Wert. Wenn Sie beispielsweise die Farbe eines Textes ändern möchten, können Sie SetAttribute verwenden, um das Stilattribut des Elements zu ändern. Um den Wert eines Attributs hinzuzufügen oder zu ändern, wird GetArttribute verwendet, um den Wert eines Attributs abzurufen. Beide sind Methoden der Elementschnittstelle im DOM. Sie arbeiten zusammen, um Entwicklern zu ermöglichen, mit HTML -Elementen zu interagieren und zu manipulieren. Die Methode kann das Stilattribut eines HTML -Elements ändern, das CSS -Eigenschaften enthält. Es ist jedoch wichtig zu beachten, dass die Verwendung von SetAttribute alle vorhandenen Inline -Stile überschreibt. Wenn Sie eine bestimmte Style -Eigenschaft ändern möchten, ohne andere zu beeinflussen, ist es besser, die Style -Eigenschaft des Elements zu verwenden.

Was passiert, wenn das Attribut nicht vorhanden ist? existieren, die setAttribute -Methode erstellt sie mit dem angegebenen Wert. Dies ist einer der Gründe, warum SetAttribute so leistungsfähig ist: Es ermöglicht Entwicklern, HTML -Elemente dynamisch hinzuzufügen.

Kann ich SetAttribute mit benutzerdefinierten Datenattributen verwenden? Dies ist besonders nützlich, wenn Sie zusätzliche Informationen speichern müssen, die keine visuelle Darstellung haben. Denken Sie nur daran, den Attributnamen mit "Daten-" zu präfixen, um den HTML5-Standards zu entsprechen. Dies bedeutet, dass „Klasse“ und „Klasse“ als zwei verschiedene Attribute behandelt werden. Stellen Sie immer sicher, dass Sie den richtigen Fall bei der Arbeit mit Attributen verwenden. Dies liegt daran, dass der Wert eines Ereignisattributs immer eine Zeichenfolge ist, was bedeutet, dass Sie keine Funktion als Ereignishandler direkt zuweisen können. Verwenden Sie stattdessen die AddEventListener -Methode, die speziell für diesen Zweck ausgelegt ist. Nicht alle Attribute gelten jedoch für alle Elemente. Zum Beispiel ist das "SRC" -attribut für "IMG" -Anlemente relevant, jedoch nicht für 'P' Elemente. Dynamisch das Erscheinungsbild oder das Verhalten eines HTML -Elements verändern. Zum Beispiel können Sie es verwenden, um die Farbe eines Textes zu ändern, einem Bild einen Rand hinzuzufügen oder die Quelle eines Bildes zu ändern. Es wird auch verwendet, um benutzerdefinierte Datenattribute hinzuzufügen.

Gibt es Alternativen zu SetAttribute? Beispielsweise können Sie die Eigenschaften eines HTML -Elements direkt ändern. Dies ist oft einfacher und intuitiver als die Verwendung von SetAttribute. SetAttribute hat jedoch den Vorteil, dass Sie mit jedem Attribut arbeiten können, einschließlich benutzerdefinierter Datenattribute.

Das obige ist der detaillierte Inhalt vonsetAttribute (W3C DOM -Kernmethode). Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

Erklärung dieser Website
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn
Neueste Artikel des Autors
Beliebte Tutorials
Mehr>
Neueste Downloads
Mehr>
Web-Effekte
Quellcode der Website
Website-Materialien
Frontend-Vorlage