Return "Wert" - Attribut des tr-Tags
Ich habe die folgende Tabelle:
<table id="messages" border="1">
<tbody>
<tr>
<th>Name</th>
<th>Text</th>
<th>Subject</th>
</tr>
<tr value="1">
//data
</tr>
<tr value="2">
//data
</tr>
</tbody>
</table>
Brauche ich einige jquery zurückgeben, das val-Attribut des angeklickten tr. Ich habe bereits jquery, das wird return ein array mit allen teh eingeschlossen td innerhalb des tr, aber ich brauche noch den "Wert" gespeichert werden, um eine variable. Keine Hilfe?
Ein nicht-input-element, sollten Sie nicht haben eine
jQuery zugreifen kann
Ich habe nie gesagt, es konnte nicht, ich sagte nur, dass die
Die einzige Ausnahme zu dieser Regel, die ich kenne, ist
value
Attribut, sondern verwenden Sie eine benutzerdefinierte data-*
- Attribut zu pflegen gültigen HTML-Code (allerdings nur gültig in HTML5).jQuery zugreifen kann
data-
Attribute mit .data()
auch in nicht-HTML5-Browser.Ich habe nie gesagt, es konnte nicht, ich sagte nur, dass die
data-*
Attribute sind nicht gültig in HTML, es sei denn, es ist HTML5.Die einzige Ausnahme zu dieser Regel, die ich kenne, ist
li
Elemente, wo die value
Attribut gültig ist, seltsam genug.InformationsquelleAutor Mildfire | 2013-03-04
Du musst angemeldet sein, um einen Kommentar abzugeben.
Es ist nicht ratsam
value
Attribute non-input-Elemente, denn das macht keinen Sinn, den browser. Ändern<tr value="1">
zu<tr data-value="1">
und den Zugriff auf$tr.data('value')
(wo$tr
ist ein jQuery-Objekt für eine unique table row).http://api.jquery.com/data/
Geklärt, danke.
Versucht, aber ich erhalte den Fehler: TypeError: $(...).Daten ist nicht eine Funktion [Pause zu Diesem Fehler] alert($(this).data('value'));
Um fair zu sein, die meisten aktuellen Browser verarbeiten das Attribut sanely im Interesse der Ermöglichung von polyfills, wenn nichts anderes. (Heck, AngularJS scheint zu hängen.) Es ist noch nicht eine sehr gute Idee für vorwärts-Kompatibilität obwohl.
welche version von jQuery?
InformationsquelleAutor Blazemonger
Verwenden Sie
$(this).attr('value')
um das Attribut, aber einige Browser unterstützen möglicherweise nicht die ein nicht-standard-Attribut wie dieses. Es wäre besser, verwenden Sie eine data-Attribut:Dann kannst du den Wert mit
$(this).data('value')
.data-*
lieben. Soweit ich es verstehe, ist die Logik dahinter ist meist, dass das Präfix bildet einen namespace, in dem W3C / die browser-Anbieter nie vorstellen Attribute Ihrer eigenen. (Es ist zwar möglich, dass für einige Grund könnte jemand entscheiden, zu definieren, einevalue
Attribut auftr
tags und plötzlich deine Seite beginnt dabei etwas seltsam in diesen browser.)Der Unterschied ist, Sie abrufen kann, ein form-element ist
value
mithilfe der.value
Eigenschaft in vanilla JavaScript.tr
, auf der anderen Seite, nicht über einen.value
Eigenschaft. jsfiddle.net/0xnkmnqnInformationsquelleAutor Guffa
Mit Jquery
var variable = $('tr').val();
Oder
var variable = $('tr').attr('value');
Selbst wenn es falsch ist einen Wert zuweisen, der zu einem tr-element
InformationsquelleAutor Juan Guzmán