Tôi có một bảng có các ô có nội dung văn bản có độ dài thay đổi. Tôi muốn tìm chiều cao của ô cao nhất và sau đó làm cho tất cả các ô có chiều cao. Tôi có thể làm cái này như thế nào?Làm thế nào tôi có thể tìm thấy chiều cao ô bảng lớn nhất với jQuery?
Trả lời
Như thế này:
var max = 0;
$('table td').each(function() {
max = Math.max($(this).height(), max);
}).height(max);
Trong tiếng Anh đơn giản, lặp qua tất cả các tế bào và tìm giá trị lớn nhất, sau đó áp dụng giá trị đó để tất cả các tế bào.
Có several plugins có thể thực hiện việc này cho bạn. Tuy nhiên, mã sẽ trông như thế này:
var tallest = 0;
$('table td').each(function() {
if (tallest < $(this).height()) {
tallest = $(this).height();
}
});
$('table td').css({'height': tallest});
Bạn có thể sử dụng jQuery với đoạn mã sau
var maxHeight = 0;
$('#yourTableID td').each(function(index, value)
{
if ($(value).height() > maxHeight)
maxHeight = $(value.height());
}).each(function(index, value) {
$(value).height() = maxHeight;
});
Hy vọng nó giúp
Chờ đã, những gì đang diễn ra ở đây: '$ (value) .height() = maxHeight'. Bộ setter yêu cầu 'maxHeight' như một đối số hàm, trong khi không có đối số nào sẽ trả về chiều cao. Và tại sao bạn sẽ không sử dụng 'điều này' sau khi tất cả? – Harmen
Chỉ cần được khác nhau:
var heights = $('td').map(function() {
return $(this).height();
}).get();
var maxHeight = Math.max.apply(Math, heights);
$('td').css('height', maxHeight);
Bạn có thực sự cần phải lưu chiều cao của tất cả các ô trong một mảng không? Điều này có nghĩa là bạn thực sự phải quét qua chúng ba lần. Lần đầu tiên để có được tất cả các đỉnh cao, một lần lặp thứ hai để có được chiều cao tối đa và lần thứ ba để thiết lập chiều cao tối đa. – Harmen
Việc thu gom rác thải sẽ làm giảm sự quan tâm của mảng ở cuối. Bạn không nghĩ rằng so sánh mỗi và mọi chiều cao đều có một số sức mạnh của CPU? Math.max.apply() cực kỳ hiệu quả. Xin lỗi tôi đăng một cái gì đó khác với tiêu chuẩn. Nếu bạn đánh giá nó, nó sẽ thắng. Tôi thích cá nhân ví dụ của Tatu, mọi người hiểu chuỗi. –
Bạn có thể ở ngay đó, tôi không thể hoàn tác phiếu giảm giá của tôi nữa, lần sau tôi chỉ thêm nhận xét trước khi tôi nhấn nút bỏ phiếu xuống – Harmen
đóng góp ví dụ của @tatu ulmanen
Điều này là hiển nhiên nhưng nếu bạn chỉ muốn strech các hàng với các tế bào cao bọc một vòng lặp tr :)
$('table tr').each(function(){
var max = 0;
$(this).find('td').each(function(){
max = Math.max($(this).height(), max);
}).height(max);
});
- 1. jQuery - làm cách nào tôi có thể tìm thấy phần tử có id nhất định?
- 2. Làm thế nào tôi có thể lập trình tăng chiều cao của các ô trong UITableView của tôi?
- 3. Wpf: Lưới: Làm thế nào tôi có thể chia sẻ chiều rộng chiều cao cột/hàng?
- 4. Làm thế nào tôi có thể nhận được chiều rộng và chiều cao
- 5. Trong JQuery làm thế nào tôi có thể nhận được ô bảng liền kề?
- 6. Hoạt ảnh trông khó xử khi xóa ô có chiều cao lớn hơn các ô khác
- 7. Làm thế nào tôi có thể nhận được chiều cao của đường cơ sở của một phông chữ nhất định?
- 8. jQuery - làm thế nào tôi có thể tìm thấy nếu một id có một chuỗi cụ thể?
- 9. Làm thế nào tôi có thể quản lý chiều cao của các mục spinner android?
- 10. Làm cách nào để tìm ô bảng trước bằng jQuery?
- 11. Làm thế nào có thể chiều cao UITableViewCellContentView khác với heightForRowAtIndexPath:
- 12. Làm thế nào tôi có thể nhận được một div để điền vào một ô bảng theo chiều dọc?
- 13. Làm thế nào tôi có thể có chiều cao của cửa sổ mẹ từ bên trong iFrame bằng jQuery?
- 14. Làm thế nào để tìm thấy yếu tố gần gũi nhất với jQuery
- 15. jQuery tìm phụ huynh cao nhất TD
- 16. Thay đổi kích thước chiều cao ô bảng theo chiều cao hình ảnh đã tải xuống
- 17. Tôi có thể tìm thấy chiều rộng bàn điều khiển với Java không?
- 18. Nội dung chiều cao đầy đủ với chiều rộng nhỏ nhất có thể
- 19. Tìm hiểu divs chiều cao và thiết div chiều cao
- 20. Các ô bảng lớn hơn chúng có nghĩa là
- 21. UITableView với chiều cao ô động - tôi cần phải làm gì để sửa lỗi cuộn xuống?
- 22. Làm thế nào tôi có thể nhận được chiều cao của một chuỗi cho trước?
- 23. tableXem chiều cao ô ... làm thế nào để tùy chỉnh nó?
- 24. Làm thế nào tôi có thể tìm thấy OWNER của một đối tượng trong Oracle?
- 25. jQuery: Nhận ô trong bảng tiếp theo chiều dọc
- 26. Nếu tôi thêm điều khiển UISwitch vào từng ô xem bảng của tôi, làm thế nào tôi có thể cho biết ô đó thuộc về ô nào?
- 27. Trong mercurial làm thế nào tôi có thể tìm thấy changesets có chứa một chuỗi?
- 28. Chiều cao Jquery accordion: 100%
- 29. Kiểm soát chiều cao trình giữ chỗ với jQuery-UI có thể sắp xếp
- 30. jQuery có được chiều cao từ trên
+1 bởi vì nó ngắn, nhưng bạn có thể tối ưu hóa nó. Bạn có thể xóa 'max === false ||' chẳng hạn. Và tôi nghĩ bạn nên di chuyển '$ (this) .height()' vào một biến, giúp bạn tiết kiệm một vài cú gọi hàm số – Harmen
Đợi đã, bạn đã sửa nó. Đó là một giải pháp thực sự tốt Tôi nghĩ rằng – Harmen
@Harmen, cảm ơn, bây giờ sử dụng 'Math.max()' mà đơn giản hóa nó khá một chút. –