element.setAttribute('rel', 'me');
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>
dann würde die obige Operation dazu führen:
<a href="http://www.brothercake.com/" rel="me">brothercake</a>
Der Name des Attributs zu erstellen oder ändern.
Der Zeichenfolgenwert für die Attribut.
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');
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');
häufig gestellte Fragen zur SetAttribute W3C DOM -Kernmethode
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!