Ich habe ein Formulareingabeelement und möchte dessen title-Attribut ändern. Das muss einfach sein, aber aus irgendeinem Grund kann ich nicht herausfinden, wie das geht. Wie wird das gemacht und wo und wie soll ich nach einer Lösung suchen?
Bevor wir Code schreiben, wollen wir den Unterschied zwischen Attributen und Eigenschaften diskutieren. Attribute sind die Einstellungen, die Sie auf Elemente in Ihrem HTML-Markup anwenden. Der Browser analysiert dann das Markup und erstellt DOM-Objekte verschiedener Typen, die Eigenschaften enthalten, die mit den Werten der Attribute initialisiert wurden. Bei DOM-Objekten, wie einem einfachen HTMLElement
, möchten Sie fast immer mit seinen - Eigenschaften arbeiten, nicht mit seinen - Attributen Sammlung.
Die derzeit empfohlene Vorgehensweise besteht darin, die Arbeit mit Attributen zu vermeiden, es sei denn, sie sind benutzerdefiniert oder es gibt keine entsprechende Eigenschaft, um sie zu ergänzen. Da title
für viele HTMLElement
tatsächlich als Lese-/Schreibeigenschaft existiert , sollten wir dies nutzen.
Sie können mehr über den Unterschied zwischen Attributen und Eigenschaften lesen hier oder hier .
In diesem Sinne manipulieren wir title
...
title
eines Elements ohne jQuery ab oder legt sie festDa title
eine öffentliche Eigenschaft ist, können Sie sie für jedes DOM-Element festlegen, das sie mit einfachem JavaScript unterstützt:
document.getElementById('yourElementId').title = 'your new title';
Der Abruf ist nahezu identisch. nichts besonderes hier:
var elementTitle = document.getElementById('yourElementId').title;
Dies ist die schnellste Möglichkeit, den Titel zu ändern, wenn Sie eine Optimierungsnuss sind. Da Sie jedoch wollten, dass jQuery einbezogen wird:
title
eines Elements mit jQuery (v1.6 +)jQuery hat in Version 1.6 eine neue Methode eingeführt, um Eigenschaften abzurufen und festzulegen. Verwenden Sie zum Festlegen der Eigenschaft title
für ein Element Folgendes:
$('#yourElementId').prop('title', 'your new title');
Wenn Sie den Titel abrufen möchten, lassen Sie den zweiten Parameter aus und erfassen Sie den Rückgabewert:
var elementTitle = $('#yourElementId').prop('title');
Lesen Sie die prop()
API-Dokumentation für jQuery.
Wenn Sie wirklich keine Eigenschaften verwenden möchten oder eine Version von jQuery vor v1.6 verwenden, sollten Sie Folgendes lesen:
title
eines Elements mit jQuery (Versionen <1.6)Sie können das title
Attribut mit dem folgenden Code ändern:
$('#yourElementId').attr('title', 'your new title');
Oder rufen Sie es mit:
var elementTitle = $('#yourElementId').attr('title');
Lesen Sie die attr()
API-Dokumentation für jQuery.
In modalen jquery ui-Dialogen müssen Sie dieses Konstrukt verwenden:
$( "#my_dialog" ).dialog( "option", "title", "my new title" );
Ich glaube
$("#myElement").attr("title", "new title value")
oder
$("#myElement").prop("title", "new title value")
sollte den Trick machen ...
Ich denke, Sie können alle Kernfunktionen in jQuery Docs finden, obwohl ich die Formatierung hasse.
Wenn Sie möchten, können Sie auch das DOM-Element aus dem jQuery-Objekt abrufen und Standard-DOM-Accessoren verwenden:
$("#myElement")[0].title = "new title value";
Der "jQuery-Weg" ist, wie von anderen erwähnt, die Verwendung der attr () -Methode. Siehe die API-Dokumentation für attr () hier .
Wenn Sie ein div
erstellen und versuchen, ein title
hinzuzufügen.
Versuchen
var myDiv= document.createElement("div");
myDiv.setAttribute('title','mytitle');
jqueryTitle({
title: 'New Title'
});
für den ersten Titel:
jqueryTitle('destroy');