Dieser Beitrag wird automatisch als minderwertig gekennzeichnet, da er so kurz / nur Code ist. Würde es Ihnen etwas ausmachen, es zu erweitern, indem Sie Text hinzufügen, um zu erklären, wie es das Problem löst?
Gung - Reinstate Monica
2
Es löst das Problem tatsächlich nicht. OP möchte den Namenswert erhalten; Dies setzt voraus, dass Sie es bereits wissen.
Felwithe
16
Es ist nicht zu leugnen, dass jQuery ein leistungsstarkes Tool ist, aber es ist eine wirklich schlechte Idee, es für eine so triviale Operation wie "Attributwert eines Elements abrufen" zu verwenden.
Nach der aktuell akzeptierten Antwort zu urteilen, gehe ich davon aus, dass Sie Ihrem Element ein ID-Attribut hinzufügen und dieses zur Auswahl verwenden konnten.
In diesem Sinne sind hier zwei Codeteile. Zunächst der Code, den Sie in der akzeptierten Antwort erhalten haben:
Sie können selbst testen hier . Die "Plain JavaScript" -Version ist über 35-mal schneller als die jQuery-Version.
Nun, das ist nur für eine Operation, im Laufe der Zeit werden immer mehr Dinge in Ihrem Code vor sich gehen. Vielleicht würde für etwas besonders Fortgeschrittenes die optimale "reine JavaScript" -Lösung eine Sekunde dauern. Die jQuery-Version kann 30 Sekunden bis eine ganze Minute dauern! Das ist riesig! Die Leute werden dafür nicht herumsitzen. Sogar der Browser wird sich langweilen und Ihnen die Möglichkeit bieten, die Webseite zu lange zu beenden!
nette antwort, ich habe sie überprüft, damit javascript schneller ist als jquery, oder?
Rijo
Sie haben diese Frage 4 Jahre nach der Beantwortung der Frage beantwortet und die Frage nicht beantwortet. Die Person fragte, wie es in jQuery geht. Es liegt an dem Programmierer, ob er jQuery oder Vanilla JS verwendet, und es liegt außerhalb des Rahmens der Frage
Zachary Weixelbaum
Vanilla JS! ?? Im Scherz habe ich eine halbe Stunde lang nachgeforscht, was der Hack Vanilla JS ist.
Basheer AL-MOMANI
Vielleicht weiß der Entwickler es nicht. Mir war bewusst, dass Frameworks wie jQuery einen gewissen Overhead verursachen. Aber ich hatte nicht erwartet, solche einfachen Aufgaben in Faktor 35 zu verlangsamen, wenn ich jQuery benutze ...
Daniel
7
Sie müssen einen Selektor schreiben, der <input>zuerst den richtigen auswählt . Idealerweise verwenden Sie $('#element_id')die ID des Elements , andernfalls die ID des Containers $('#container_id input')oder die Klasse des Elements $('input.class_name').
Ihr Element hat keines davon und keinen Kontext, daher ist es schwierig, Ihnen zu sagen, wie Sie es auswählen sollen.
Sobald Sie den richtigen Selektor gefunden haben, verwenden Sie die attr- Methode, um auf die Attribute des Elements zuzugreifen. Um den Namen zu erhalten, würden Sie verwenden, $(selector).attr('name')der zurückkehren würde (in Ihrem Beispiel) 'xxxxx'.
Ein besserer Weg könnte darin bestehen, 'this' zu verwenden. Es wird der Name der 'id' verwendet und verwendet. Solange Sie den Klassennamen 'mytarget' hinzufügen.
Wenn sich eines der Felder mit einem Ziel ändert, wird ein Warnfeld mit dem Namen dieses Felds angezeigt. Schneiden Sie einfach das gesamte Skript aus und fügen Sie es ein, damit es funktioniert!
Wenn Sie es vorzugsweise mit einem einzelnen Elementid zu tun haben, sollten Sie den Selektor wie in der Antwort von GenericTypeTea angegeben verwenden und den Namen wie erhalten $("#id").attr("name");.
Wenn Sie jedoch wie bei der Suche nach dieser Frage eine Liste mit allen Eingabenamen einer bestimmten Klasse (in meinem Beispiel eine Liste mit den Namen aller nicht aktivierten Kontrollkästchen mit .selectable-checkboxKlasse) möchten, können Sie Folgendes tun:
var listOfUnchecked = $('.selectable-checkbox:unchecked').toArray().map(x=>x.name);
oder
var listOfUnchecked =[];
$('.selectable-checkbox:unchecked').each(function(){
listOfUnchecked.push($(this).attr('name'));});
In der folgenden Zeile gab es zunächst ein Problem mit der Angabe eines einzelnen Codes, für den der Wert 'currnetRowAppName' keinen Platz mit der Zeichenfolge belegt. Nachdem Sie also einen einzelnen Code angegeben haben '"+row.applicationName+"', nimmt er auch Platz ein.
Beispiel:
<buttonclass='btn btn-primary btn-xs appDelete'type='button'currnetRowAppName='"+row.applicationName+"'id="+row.id+ >
var viewAppNAME = $(this).attr("currnetRowAppName");
alert(viewAppNAME)
Es ist nicht zu leugnen, dass jQuery ein leistungsstarkes Tool ist, aber es ist eine wirklich schlechte Idee, es für eine so triviale Operation wie "Attributwert eines Elements abrufen" zu verwenden.
Nach der aktuell akzeptierten Antwort zu urteilen, gehe ich davon aus, dass Sie Ihrem Element ein ID-Attribut hinzufügen und dieses zur Auswahl verwenden konnten.
In diesem Sinne sind hier zwei Codeteile. Zunächst der Code, den Sie in der akzeptierten Antwort erhalten haben:
Und zweitens die Vanilla JS- Version davon:
Meine Ergebnisse:
Sie können selbst testen hier . Die "Plain JavaScript" -Version ist über 35-mal schneller als die jQuery-Version.
Nun, das ist nur für eine Operation, im Laufe der Zeit werden immer mehr Dinge in Ihrem Code vor sich gehen. Vielleicht würde für etwas besonders Fortgeschrittenes die optimale "reine JavaScript" -Lösung eine Sekunde dauern. Die jQuery-Version kann 30 Sekunden bis eine ganze Minute dauern! Das ist riesig! Die Leute werden dafür nicht herumsitzen. Sogar der Browser wird sich langweilen und Ihnen die Möglichkeit bieten, die Webseite zu lange zu beenden!
Wie gesagt, jQuery ist ein mächtiges Werkzeug, aber es sollte nicht als Antwort auf alles angesehen werden .
quelle
Sie müssen einen Selektor schreiben, der
<input>
zuerst den richtigen auswählt . Idealerweise verwenden Sie$('#element_id')
die ID des Elements , andernfalls die ID des Containers$('#container_id input')
oder die Klasse des Elements$('input.class_name')
.Ihr Element hat keines davon und keinen Kontext, daher ist es schwierig, Ihnen zu sagen, wie Sie es auswählen sollen.
Sobald Sie den richtigen Selektor gefunden haben, verwenden Sie die attr- Methode, um auf die Attribute des Elements zuzugreifen. Um den Namen zu erhalten, würden Sie verwenden,
$(selector).attr('name')
der zurückkehren würde (in Ihrem Beispiel)'xxxxx'
.quelle
Ein besserer Weg könnte darin bestehen, 'this' zu verwenden. Es wird der Name der 'id' verwendet und verwendet. Solange Sie den Klassennamen 'mytarget' hinzufügen.
Wenn sich eines der Felder mit einem Ziel ändert, wird ein Warnfeld mit dem Namen dieses Felds angezeigt. Schneiden Sie einfach das gesamte Skript aus und fügen Sie es ein, damit es funktioniert!
quelle
quelle
using value get input name
using id get input name
using class get input name
quelle
Wenn Sie es vorzugsweise mit einem einzelnen Element
id
zu tun haben, sollten Sie den Selektor wie in der Antwort von GenericTypeTea angegeben verwenden und den Namen wie erhalten$("#id").attr("name");
.Wenn Sie jedoch wie bei der Suche nach dieser Frage eine Liste mit allen Eingabenamen einer bestimmten Klasse (in meinem Beispiel eine Liste mit den Namen aller nicht aktivierten Kontrollkästchen mit
.selectable-checkbox
Klasse) möchten, können Sie Folgendes tun:oder
quelle
Übergeben Sie die Klasse an das Eingabe-Tag und greifen Sie mithilfe der Klasse auf den Namenswert zu.
Sie können auch mit der ID auf den Wert zugreifen.
quelle
In der folgenden Zeile gab es zunächst ein Problem mit der Angabe eines einzelnen Codes, für den der Wert 'currnetRowAppName' keinen Platz mit der Zeichenfolge belegt. Nachdem Sie also einen einzelnen Code angegeben haben
'"+row.applicationName+"'
, nimmt er auch Platz ein.Beispiel:
Das funktioniert gut.
quelle