Ich habe eine Tabelle mit Zellen mit variabler Länge Text-Inhalt. Ich möchte die Höhe der höchsten Zelle finden und dann alle Zellen so groß machen. Wie kann ich das machen?Wie kann ich die größte Tabellenzellenhöhe mit jQuery finden?
Antwort
So:
var max = 0;
$('table td').each(function() {
max = Math.max($(this).height(), max);
}).height(max);
In einfachem Englisch, eine Schleife durch alle Zellen und finden Sie den Maximalwert, gelten dann diesen Wert auf alle Zellen.
Es gibt several plugins, die dies für Sie tun können. Allerdings würde der Code wie folgt aussehen:
var tallest = 0;
$('table td').each(function() {
if (tallest < $(this).height()) {
tallest = $(this).height();
}
});
$('table td').css({'height': tallest});
Sie können jQuery verwenden, um mit dem folgenden Code
var maxHeight = 0;
$('#yourTableID td').each(function(index, value)
{
if ($(value).height() > maxHeight)
maxHeight = $(value.height());
}).each(function(index, value) {
$(value).height() = maxHeight;
});
Hoffe, es hilft
Warte, was hier passiert: '$ (Wert) .height() = maxHeight'. Der Setter benötigt 'maxHeight' als Funktionsargument, während keine Argumente die Höhe zurückgeben. Und warum würdest du 'this' nicht doch benutzen? – Harmen
einfach anders zu sein:
var heights = $('td').map(function() {
return $(this).height();
}).get();
var maxHeight = Math.max.apply(Math, heights);
$('td').css('height', maxHeight);
Müssen Sie wirklich die Höhe aller Tabellenzellen in einem Array speichern? Das würde bedeuten, dass Sie sie dreimal durchsuchen müssen. Das erste Mal, um alle Höhen zu erhalten, eine zweite Iteration, um die maximale Höhe zu erhalten und das dritte Mal, um die maximale Höhe einzustellen. – Harmen
Müllsammeln kümmert sich am Ende um das Array. Sie glauben nicht, dass der Vergleich jeder einzelnen Höhe CPU-Leistung erfordert? Math.max.apply() ist extrem effizient. Entschuldigung, ich habe etwas anderes als die Norm gepostet. Wenn Sie es benchmarken, gewinnt es. Ich bevorzuge Tatus Beispiel persönlich, die Leute verstehen die Verkettung. –
Sie können direkt dort sein, ich kann meinen Downvote nicht mehr rückgängig machen, das nächste Mal werde ich nur einen Kommentar hinzufügen, bevor ich den unteren Abstimmknopf drücke – Harmen
Beitrag @tatu Ulmanens Beispiel
Dies ist offensichtlich, aber wenn Sie nur die Zeilen mit größeren Zellen Strech wollen eine tr Schleife wickeln :)
$('table tr').each(function(){
var max = 0;
$(this).find('td').each(function(){
max = Math.max($(this).height(), max);
}).height(max);
});
- 1. git: größte Commits finden
- 2. Wie kann ich die größte gemeinsame Teilzeichenfolge zwischen zwei Zeichenfolgen in PHP finden?
- 3. Größte Dokumentgröße in MongoDB finden
- 4. Das größte geschlossene 3D-Konturdiagramm finden
- 5. Wie kann ich das größte Datum und die größte Uhrzeit aus der Spalte mit Linq to entity abrufen?
- 6. Die größte zweite Nummer
- 7. Finden größte unabhängige Teilmenge von einer Konnektivitätsmatrix
- 8. Größte Ansicht aller Zeiten! Wie kann ich dieses Monster reduzieren?
- 9. Kann ich die Konsolenbreite mit Java finden?
- 10. Finden Sie die größte Bitbreite von synthetisierbaren Datentypen in Systemverilog
- 11. Wie kann ich mit jquery
- 12. Kann ich in jQuery einen Button finden?
- 13. Kann Jquery nicht finden
- 14. Wie bekomme ich die größte Nummer in Textarea?
- 15. Wie finde ich die größte Variable und drucke diesen Variablennamen?
- 16. Wie finden Sie die größte Schriftgröße, die einen bestimmten Text nicht bricht?
- 17. Wie kann ich versteckte Verzeichnisse mit finden?
- 18. Wie kann ich die Position auf der Seite eines Elements mit jQuery finden?
- 19. Wie kann ich die am weitesten rechts gelegene Zelle in einer Tabelle mit jQuery finden?
- 20. jQuery erhält die größte Nummer aus der Liste
- 21. Warum steigt die Tabellenzellenhöhe, wenn ich eine Schaltfläche in einer Spalte platziere? Wie kann ich das vermeiden?
- 22. C++ Wie man die größte und kleinste
- 23. Wie bekomme ich eine Array-Größe (und die größte) mit einer SQL-Anweisung?
- 24. Wie die Duplikate in einem Array finden jquery mit
- 25. Größte Kompatibilitätsregel in Ruby
- 26. Wie kann ich Kanäle finden, die ich in Telegram besitze?
- 27. Chrome 50 Änderung des Verhaltens impliziter Tabellenzellenhöhe
- 28. Wie kann ich die Textfarbe mit jQuery ändern?
- 29. Wie kann ich mit jQuery auf die iFrame-Hauptseite zugreifen?
- 30. Wie füge ich einem BoundField eine CSS-Klasse hinzu, damit ich sie mit jQuery finden kann?
+1, weil es kurz ist, aber Sie können es optimieren. Sie können zum Beispiel 'max === false ||' entfernen. Und ich denke, Sie sollten '$ (this) .height()' in eine Variable verschieben, die Sie ein paar Doppelfunktionsaufrufe speichert. – Harmen
Warten Sie, Sie haben es bereits behoben. Das ist eine wirklich gute Lösung, denke ich – Harmen
@Harmen, danke, jetzt verwendet 'Math.max()' was vereinfacht es ein wenig. –