Hinzufügen eines Attributs in jQuery

271

Wie kann ich bestimmten HTML-Tags in jQuery ein Attribut hinzufügen?

Zum Beispiel wie dieser einfache HTML:

<input id="someid" />

Fügen Sie dann ein Attribut disabled = "true" wie folgt hinzu:

<input id="someid" disabled="true" />
Yuda Prawira
quelle
Mögliches Duplikat von Wie man ein HTML-Attribut mit jQuery hinzufügt
Chris Laplante

Antworten:

519

Sie können Attribute attrwie folgt hinzufügen :

$('#someid').attr('name', 'value');

Doch für DOM - Eigenschaften wie checked, disabledund readonlydie richtige Art und Weise , dies zu tun (wie von JQuery 1.6) zu verwenden prop.

$('#someid').prop('disabled', true);
Paul Rosania
quelle
28
Bei mir $('#someid').prop('disabled', true);funktioniert das nicht, aber es $('#someid').attr('disabled', true);funktioniert gut.
Vukašin Manojlović
4
Stimme @ VukašinManojlović zu .. für mich das gleiche.
Sstauross
3
Bevor Sie sich entscheiden, ob Sie attroder verwenden möchten prop, ist es wichtig, den Unterschied zwischen Eigenschaften und Attributen zu verstehen. Ohne den Unterschied zu verstehen, werden Sie wahrscheinlich auf unerwartetes Verhalten stoßen. Siehe stackoverflow.com/a/6004028/3367343
Travis Hohl
Kann Prop jetzt als Ersatz für attr verwendet werden? oder wird es nur in besonderen Fällen verwendet?
Chaudhry Waqas
41

Beste Lösung: Ab jQuery v1.6 können Sie mit prop () eine Eigenschaft hinzufügen

$('#someid').prop('disabled', true);

Verwenden Sie zum Entfernen removeProp()

$('#someid').removeProp('disabled');

Reference

Beachten Sie außerdem, dass die Methode .removeProp () nicht verwendet werden sollte, um diese Eigenschaften auf false zu setzen. Sobald eine native Eigenschaft entfernt wurde, kann sie nicht mehr hinzugefügt werden. Weitere Informationen finden Sie unter .removeProp ().

diEcho
quelle
29

Sie können dies mit der .attrFunktion von jQuery tun, mit der Attribute festgelegt werden. Das Entfernen erfolgt über die .removeAttrFunktion.

//.attr()
$("element").attr("id", "newId");
$("element").attr("disabled", true);

//.removeAttr()
$("element").removeAttr("id");
$("element").removeAttr("disabled");
mattsven
quelle
1
Bonus für die Aufnahmefunktion!
BoatCode
15
$('#someid').attr('disabled', 'true');
Jerad Rose
quelle
7
$('#someid').attr('disabled', 'true');
mrzmyr
quelle
2
$('.some_selector').attr('disabled', true);
morgar
quelle
2

Attribut hinzufügen als:

$('#Selector_id').attr('disabled',true);
Amar Ghodke
quelle
0

Dies könnte hilfreicher sein ....

$("element").prop("id", "modifiedId");
//for boolean
$("element").prop("disabled", true);
//also you can remove attribute
$('#someid').removeProp('disabled');
Rejwanul Reja
quelle
Attribute und Eigenschaften sind nicht genau gleich. Zum Beispiel ist "id" ein Attribut, keine Eigenschaft. Sie verwenden, .attr()um es einzustellen oder zu lesen. Siehe den Abschnitt "Attribute vs. Eigenschaften" unter .prop () und .attr () in den jQuery-Dokumenten. Siehe auch die Antwort von Paul Rosania oben.
JKDEV
0
$('#yourid').prop('disabled', true);
Nakendra Pun
quelle
0

Verwenden Sie diesen Code <script> $('#someid').attr('disabled,'true'); </script>

Vildan Bina
quelle
Es wäre schöner, wenn Sie eine Erklärung haben könnten
Mooga
<script src="https://ajax.googleapis.com/ajax/libs/jquery/3.3.1/jquery.min.js"></script> Fügen Sie einfach den jQuery-Link nach dem Schreiben des Codes ein. Text innerhalb des $ -Symbols Wählen Sie alle Elemente mit id = someid aus. Das deaktivierte Attribut dieser ID ändert sich in true
Vildan Bina,