Antworten:
var value_input = $("input[name*='xxxx']").val();
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:
$("#ID").attr("name");
Und zweitens die Vanilla JS- Version davon:
document.getElementById('ID').getAttribute("name");
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 .
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!
<script src="//ajax.googleapis.com/ajax/libs/jquery/1.8.0/jquery.min.js" type="text/javascript"></script>
<script>
$(document).ready(function() {
$('.mytarget').change(function() {
var name1 = $(this).attr("name");
alert(name1);
});
});
</script>
Name: <input type="text" name="myname" id="myname" class="mytarget"><br />
Age: <input type="text" name="myage" id="myage" class="mytarget"><br />
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-checkbox
Klasse) 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'));
});
Übergeben Sie die Klasse an das Eingabe-Tag und greifen Sie mithilfe der Klasse auf den Namenswert zu.
<input class="test-class" name='xxxxx' value=1>
<script>
$('.test-class').attr('name');
</script>
Sie können auch mit der ID auf den Wert zugreifen.
<input id="test-id" name='xxxxx' value=1>
<script>
$('#test-id').attr('name');
</script>
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:
<button class='btn btn-primary btn-xs appDelete' type='button' currnetRowAppName='"+row.applicationName+"' id="+row.id+ >
var viewAppNAME = $(this).attr("currnetRowAppName");
alert(viewAppNAME)
Das funktioniert gut.