2011-01-08 18 views
0

Es scheint, ich kann document.getElementById().href in der Javascript-Referenz nicht finden, gibt es eine Menge Websites sagen, um dies zu verwenden, um die href eines Links zu ändern. Ist das sicher? Funktioniert es in allen Browsern? Oder sollte ich gerade meinen anderen Link schon haben und den alten ersetzen, wenn er nicht mehr benötigt wird?Cross-Browser-Änderung ein A-Tags 'HREF

Ich habe nur 2 mögliche Werte Ich werde für den Link, abhängig von der letzten Aktion durch den Benutzer, entweder "löschen" oder "wiederbeleben". Ich denke also, die Verbindung zu ersetzen, anstatt sie zu ändern, wäre keine große Last. Ich würde es lieber ändern, wenn es in allen Browsern funktioniert.

Dank

Antwort

3

Sie können es in keiner Referenz finden, da es kein einzelnes Konstrukt ist, es ist die Kombination von zwei.

Verwenden Sie die document.getElementById method, um ein bestimmtes Element abzurufen, und wenn dieses Element ein Anker-Tag ist, können Sie die URL mithilfe der href property festlegen.

Beide sind in der DOM level 1 specification angegeben, so dass sie sicher in jedem Browser verwendet werden können, der nicht mehr als ein Jahrzehnt alt ist, und die meisten, die auch ein bisschen älter sind.

+0

Es gibt keinen Grund, einen Link zu DOM 1 bereitzustellen, wenn es DOM 2-Standards gibt: http://www.w3.org/TR/DOM-Level-2-Core http: // www. w3.org/TR/DOM-Level-2-HTML –

0

Ich bin ziemlich sicher, dass es „sicher“ nichts Schlimmes passieren wird ist. Es funktioniert in allen Browsern, in denen ich es getestet habe, und ist der Standard, in dem JavaScript die Werte von Elementattributen ändert.

0

Ich habe eine ähnliche Frage hier gestellt: Retrieving HTML attribute values "the DOM 0 way"

überprüfen die Antworten aus. Die Schlussfolgerung ist, dass die Attribute src, href und style nicht sicher sind und eine JavaScript-Bibliothek empfohlen wird. Für das href Attribut empfehle ich jQuerys attr() Methode.

// retrieve the anchor by ID 
var anchor = $('#anchorID'); 

// get the href attribute 
var href = anchor.attr('href'); 

// set the href attribute 
anchor.attr('href', 'http://www.google.com');