Jaki jest najlepszy sposób, aby wiersz tabeli HTML był linkiem? Obecnie używam jquery do zebrania pasków w wierszach, a także do wyróżnienia wybranego wiersza onmouseover/off, więc jeśli JavaScript jest odpowiedzią, użyj jquery.Link do wiersza tabeli HTML
Odpowiedz
po prostu użyć CSS:
<style>
table.collection {width:500px;border-collapse:collapse;}
table.collection tr {background-color:#fff; border-bottom: 1px #99b solid;}
table.collection tr:hover {background-color:#ffe;}
table.collection td {display:table-cell;border-bottom: 1px #99b solid; padding:0px;}
table.collection td a {text-decoration:none; display:block; padding:0px; height:100%;}
</style>
<table class="collection">
<tr>
<td><a href="#">Linky1</a></td>
<td><a href="#">Data1</a></td>
</tr>
<tr>
<td><a href="#">Linky2</a></td>
<td><a href="#">Data2</a></td>
</tr>
</table>
Najlepsze rozwiązanie zdecydowanie. Przeglądarka nadal widzisz to jako link, więc" Otwórz w karcie "lub" Kopiuj link "będzie działać.Pozostałe rozwiązania przerwać moją przeglądarkę! Istnieje zakres dla JQuery rozwiązanie automatyzujące powyższe przez manipulację DOM –
Mam problem z tym rozwiązaniem.Jeśli jedna z komórek tabeli zawiera wystarczającą ilość treści do zawijania linii, wysokość sąsiednich komórek nie zostanie rozciągnięta do pełnej wysokości. obejście tego przypadku? – troelskn
To brzmi jak problem z trybem dziwactw IE. Nie widzę tego w firefoxie lub IE 7-8 z "- // W3C // DTD XHTML 1.0 Strict // EN". Może również nie działać w IE 6 (ale co robi?) –
Zarejestruj procedurę obsługi zdarzeń onclick dla elementu tr. Coś jak ten przy użyciu jQuery:
$("tr").bind("click", function(){
window.location = 'http://www.example.com/';
});
Czy to nie prowadzi do tej samej lokalizacji w każdym wierszu? – RuudKok
Możesz użyć ukrytego wejścia w każdym tr, aby zapisać adres URL. –
To rzeczywiście będzie wiązało to samo łącze z każdym wierszem, modyfikuj zgodnie z Twoimi potrzebami. –
$(document).ready(function(){
$("tr").click(function(){
/* personally I would throw a url attribute (<tr url="http://www.hunterconcepts.com">) on the tr and pull it off on click */
window.location = $(this).attr("url");
});
});
OK, to świetnie, ale jak możesz je otworzyć w nowym oknie? Tak jakby był to ... również w ten sposób (tylko jeśli kliknąłeś na
możesz użyj 'window.open' – hunter
Kłopot pojawia się, gdy ludzie próbują kliknąć na" tr "w taki sam sposób, w jaki klikają element" a "(np. shift + kliknięcie lub cmd + kliknięcie dla nowych zakładek itp.) – hohner
<td>
<a href="/whatevs/whatevs">
<div class="tdStreacher"> linkName
</div>
</a>
</td>
.tdStreacher{
height: 100%;
width: 100%;
padding: 3px;
}
ten sposób cały obszar każdej komórki będą działać jako łącznik, a więc cała rząd działa jako łącze.
nie widział zaakceptowanego rozwiązania, huh? Nie działa w 1999/xhtml, ponieważ wysokość: 100% niekoniecznie obejmuje całą komórkę. – dube
Oto wtyczka jQuery oparta na rozwiązaniu Nicka.
(function($) {
$.fn.linkWholeRows = function() {
// for each object
return this.each(function() {
// for each row
$(this).find('tbody tr').each(function() {
// get the first link's href
var href = $(this).find('td > a').attr('href');
// if none found then
if (href === undefined) {
return true; // continue
}
// wrap all cells with links that do not already have a link
$(this).children().not(':has(a)').each(function() {
$(this).contents().wrapAll('<a href="' + href + '" />');
});
// apply the row's height to all links
// in case that the cells' content have different heights
var height = $(this).children().css('height');
$(this).find('td > a').each(function() {
$(this).css('height', height);
// do not forget to apply display:block to the links
// via css to make it work properly
});
}); // each row
}); // each object
};
})(jQuery);
Oczekuje, że wiersze zostaną zawinięte w tbody. Wysokość jest ustawiona jawnie, ponieważ oryginalne rozwiązanie Nicka nie zadziałało dla mnie na sąsiednich komórkach o różnych wysokościach. Pamiętaj, aby stylizować elementy jako bloki. Jeśli chcesz zastosować wyściółkę, stosuje się go do A-elementów zamiast komórek tabeli:
a {
display: block;
padding: 0.25em 0.5em;
}
tbody td { padding: 0; }
Wystarczy zadzwonić
$('#your-table').linkWholeRows();
Nadzieję, że to pomaga. Wiwaty, Richard
Nie trzeba jQuery, jeśli nie przeszkadza wymianie tabelę elementów ogólnych:
<style>
.table {
border-collapse: collapse;
border-spacing: 0;
display: table;
}
.tr {
display: table-row;
}
.td {
display: table-cell;
}
</style>
<section class="table">
<a class="tr" href="#">
<div class="td">
A
</div>
<div class="td">
B
</div>
<div class="td">
C
</div>
</a>
</section>
Nie zachowujesz semantycznego znaczenia, jakie uzyskujesz, używając tagów table, tr i td z tym rozwiązaniem. – Andreas
- 1. Spowolnienie html link link
- 2. Konwersja pierwszego wiersza tabeli HTML do wiersza nagłówka dla każdej tabeli przy użyciu XSLT
- 3. Pobierz identyfikator wybranego wiersza w tabeli -HTML
- 4. HTML: iCal Link?
- 5. Jak zmusić link HTML do absolutnego działania?
- 6. umieść link HTML do aplikacji R Shiny
- 7. Jak ukryć przepełnienie wiersza tabeli?
- 8. Prosty tabulator html do tabeli
- 9. Przejść do analizy tabeli HTML
- 10. Konwersja hOCR do tabeli HTML
- 11. jQuery: Ostatnie td każdego wiersza w tabeli html
- 12. Link HTML, który wymusza odświeżenie?
- 13. javascript pobiera wartość tekstową kolumny z określonego wiersza tabeli html
- 14. wyszukiwanie w tabeli html
- 15. Link HTML pomijający pamięć podręczną?
- 16. Mysql Konwersja do wiersza (kolumny tabeli przestawnej)
- 17. Dodawanie zdarzenia onclick do wiersza tabeli
- 18. Stosowanie funkcji do każdego wiersza tabeli data.table
- 19. Pobierz indeks wiersza tabeli bieżącego wiersza
- 20. Utwórz klon wiersza tabeli i dołącz do tabeli w JavaScript
- 21. SQL max wiersza tabeli
- 22. Javascript do eksportu tabeli html do Excela
- 23. Usuwanie wiersza z tabeli użytkowników PHP MYSQL
- 24. Jak dodać hiperłącze do wiersza tabeli <tr>
- 25. Granica tabeli-wiersza jest niewidoczna
- 26. Jak dynamicznie dodawać wiersz do tabeli html
- 27. post tabeli HTML do ADO.NET DataTable
- 28. Zapytanie PHP/MySQL do wydania tabeli html
- 29. JavaScript - eksport danych tabeli HTML do Excela
- 30. przeciąganie komórek tabeli HTML
Google wyszukiwane „Link jquery tr” dał mi kilka rozwiązań już. Może powinieneś też spróbować? Nie odpowiadam na twoje pytanie, ponieważ nie mam żadnego doświadczenia jQuery, więc mogę powiedzieć coś "głupiego" ;-) – RuudKok
tak, daje wyniki, ale nie uważam, że większość z nich odpowiada. Jeśli google "pies kupa tr link" otrzymuję "odpowiedzi" również. :) – hacintosh
Dwa proponowane rozwiązania JQuery mają problem z użytecznością i dostępnością. Rozwiązanie CSS jest lepsze dla każdej publicznej strony internetowej. Zobacz moje komentarze tam. –