2010-12-11 9 views
0

Ich kann den Wert ändern Attribut eines HTMLOptionElement von so tun:Warum erstellt attr (attributeName, value) kein neues Attr-Objekt in den DOM-Attributen NamedNodeMap?

sizeOptionToBeSelected.attr('value', '555'); 

Es ändert sich der Wert-Eigenschaft des HTMLOptionElement und den Wert im Objekt DOM Attr in der NamedNodeMap Attribute Eigenschaft aus dem gleichen HTMLOptionElement Objekt.

Aber Ich kann kein neues Attr „ausgewählt“ erstellen oder die ausgewählte Eigenschaft des HTMLOptionElement ändern mit dem folgenden Code:

sizeOptionToBeSelected.attr('selected', 'true'); 

Warum denken Sie ist das? Wie kann ich das machen?

Von jquery Dokumentation:

Wir können hinzufügen ein Attribut die gleiche Weise: $ ('# greatphoto') attr ('title', 'Foto von Kelly Clark.');

Zusätzliche Erläuterungen:
- Der Code wird innerhalb der $ (document) .ready (function, so gibt es kein Problem mit dem Laden ist
- Ich verwende die neueste Google Chrome 8.0.552.215 Beta

..

Mit freundlichen Grüßen,
Despot

+0

Obwohl ich beschlossen, wie jQuery attr Methode funktioniert, vielleicht ist es eine gute Idee, einige Ahnung, warum ich das tun wollte, um (ich glaube, es für andere Benutzer nützlich sein wird). Ich löschte alle Optionen von einem Select-Tag und ich füllte mit neuen. Und die Idee war, die zuvor ausgewählte Option erneut auszuwählen. Der richtige Weg dazu ist: $ ('# selectId'). Val (theSelectedOptionValue); Für weitere, sehen dies: http://stackoverflow.com/questions/927656/jquery-select-the-same-option-on-three-select-drop-downs-with-one-action – despot

Antwort

0

jQuery, etwas verwirrend, neigt Attribute und Eigenschaften wie die gleiche Sache zu behandeln. so $(elem).attr('selected', true) tatsächlich setzt elem ‚s selected Eigenschaft auf wahr, nicht auf ihre Eigenschaft.

Es gibt sehr wenige Gründe dafür, das selectedAttribut zu setzen. Einstellen der selected (und defaultSelected) Eigenschaften sollte ausreichen.

Beachten Sie außerdem, dass das selectedAttribut dem Standardstatus entspricht, nicht dem aktuellen Status.

+0

Ich las http auch: //stackoverflow.com/questions/3953028/any-diffrence-between-element-setattribute-elementattr-element-attr, bevor ich gepostet habe. Ich hätte herausfinden sollen, dass jQuery das Attr DOM-Objekt nicht erstellen kann. Eine andere Sache ist, dass jQuery die Aussage "Wir können ein Attribut auf die gleiche Weise hinzufügen:. $ ('# Greatphoto') attr ('title', 'Foto von Kelly Clark');" ist nicht korrekt. Sollte nur "ändern" oder "setzen" sagen, aber nicht "ein Attribut hinzufügen". Das hat Verwirrung für mich geschaffen. Danke trotzdem. – despot

Verwandte Themen