Haben Sie eine Tabellenspalte, die ich erweitern und ausblenden möchte:
jQuery scheint die zu verbergen td
Elemente , wenn ich es durch wählen Klasse , aber nicht durch das Element des Namens .
Warum zum Beispiel:
$(".bold").hide(); // selecting by class works
$("tcol1").hide(); // select by element name does not work
Beachten Sie den folgenden HTML-Code. Die zweite Spalte hat für alle Zeilen den gleichen Namen. Wie kann ich diese Sammlung mit dem name
Attribut erstellen ?
<tr>
<td>data1</td>
<td name="tcol1" class="bold"> data2</td>
</tr>
<tr>
<td>data1</td>
<td name="tcol1" class="bold"> data2</td>
</tr>
<tr>
<td>data1</td>
<td name="tcol1" class="bold"> data2</td>
</tr>
Antworten:
Sie können den Attributselektor jQuery verwenden :
quelle
$("td:not([name='tcol1'])")
zum Beispiel den Selektor: not verwenden . Sie können es an dieser Geige sehenJedes Attribut kann mit
[attribute_name=value]
way ausgewählt werden . Sehen Sie das Beispiel hier :quelle
var value = $("[name=nameofobject]");
<input name="itemid[]">
. Dank der richtigen Verwendung von Anführungszeichen funktionierte diese Antwort also perfekter als die akzeptierte Antwort.Wenn Sie etwas haben wie:
Sie können alles so lesen:
Das Snippet:
quelle
Sie können das Array von Elementen auf die altmodische Weise nach Namen abrufen und dieses Array an jQuery übergeben.
Hinweis: Das einzige Mal, wenn Sie einen Grund hätten, das Attribut "Name" zu verwenden, sollten Kontrollkästchen oder Funkeingänge sein.
Oder Sie können den Elementen zur Auswahl einfach eine weitere Klasse hinzufügen. (Dies würde ich tun.)
quelle
Sie können den Namenswert aus einem Eingabefeld mithilfe des Namenselements in jQuery abrufen, indem Sie:
quelle
Frameworks verwenden normalerweise Klammernamen in Formularen wie:
Sie können aufgerufen werden durch:
quelle
Ich habe so gemacht und es funktioniert:
https://api.jquery.com/attribute-equals-selector/
quelle
Hier ist eine einfache Lösung:
$('td[name=tcol1]')
quelle
Sie haben den zweiten Satz von Anführungszeichen vergessen, wodurch die akzeptierte Antwort falsch ist:
quelle
'td[name="nested[fieldName]"]'
Sie können das Element in JQuery abrufen, indem Sie das ID-Attribut wie folgt verwenden:
quelle
Sie können jedes Attribut als Selektor mit verwenden
[attribute_name=value]
.quelle
Persönlich habe ich ihnen in der Vergangenheit eine gemeinsame Klassen-ID gegeben und diese zur Auswahl verwendet. Es ist vielleicht nicht ideal, da eine Klasse angegeben ist, die möglicherweise nicht existiert, aber es macht die Auswahl um einiges einfacher. Stellen Sie einfach sicher, dass Sie in Ihren Klassennamen eindeutig sind.
Für das obige Beispiel würde ich Ihre Auswahl nach Klassen verwenden. Besser noch wäre es, den Klassennamen von fett in 'tcol1' zu ändern, damit Sie keine versehentlichen Einschlüsse in die jQuery-Ergebnisse erhalten. Wenn Fettdruck tatsächlich auf eine CSS-Klasse verweist, können Sie beide in der Klasseneigenschaft angeben - dh 'class = "tcol1 fett"'.
Wenn Sie nicht nach Name auswählen können, verwenden Sie entweder einen komplizierten jQuery-Selektor und akzeptieren Sie alle damit verbundenen Leistungseinbußen oder verwenden Sie Klassenselektoren.
Sie können den jQuery-Bereich jederzeit einschränken, indem Sie den Tabellennamen $ ('# tableID> .bold') angeben.
Das sollte jQuery daran hindern, die "Welt" zu durchsuchen.
Es könnte immer noch als komplizierter Selektor eingestuft werden, beschränkt jedoch schnell jede Suche innerhalb der Tabelle mit der ID '#tableID', sodass die Verarbeitung auf ein Minimum beschränkt bleibt.
Eine Alternative dazu, wenn Sie nach mehr als einem Element in # table1 suchen, besteht darin, dieses separat nachzuschlagen und es dann an jQuery zu übergeben, da dies den Umfang einschränkt, aber ein wenig Verarbeitung spart, um es jedes Mal nachzuschlagen.
quelle
Sie können die Funktion verwenden:
quelle
get.elementbyId()
? Meinten Siedocument.getElementById()
?