Каков наилучший способ сделать строку таблицы HTML ссылкой? В настоящее время я использую jquery для полосы зебры строк, а также для выделения выделенной строки onmouseover/off, поэтому, если JavaScript является ответом, используйте jquery.Ссылка на строку HTML-таблицы
ответ
Я просто использовать 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>
Лучшее решение на сегодняшний день. Браузер по-прежнему видит это как ссылку, поэтому« открыть вкладку »или« скопировать ссылку »будет работать. Другие решения ломают мой браузер! Есть возможности для JQuery решение, которое автоматизирует вышеуказанное с помощью DOM-манипуляции. –
У меня возникли проблемы с этим решением. Если в одной из ячеек таблицы содержится достаточно содержимого для обертывания строк, высота соседних ячеек не будет растягиваться до полной высоты. обходной путь для этого случая? – troelskn
Это звучит как проблема режима IE quirks. Я не вижу этого в firefox или IE 7-8 с «- // W3C // DTD XHTML 1.0 Strict // EN». Он также может не работать в IE 6 (но что делает?) –
Зарегистрировать обработчик события onclick для элемента tr. Что-то вроде этого с помощью JQuery:
$("tr").bind("click", function(){
window.location = 'http://www.example.com/';
});
Не ссылается ли вы на одно и то же место в каждой строке? – RuudKok
Вы можете использовать скрытый ввод в каждом tr для хранения URL-адреса. –
Это действительно связывает одну и ту же ссылку с каждой строкой, изменяя в соответствии с вашими потребностями. –
$(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");
});
});
Хорошо, это здорово, но как вы можете открыть ее в новом окне? Как будто это было бы ... также таким образом (только если вы нажали на
вы можете use 'window.open' – hunter
Проблема возникает, когда люди пытаются щелкнуть по' tr' так же, как они нажимают на элемент 'a' (например, shift + click или cmd + click для новых вкладок и т. д.). – hohner
<td>
<a href="/whatevs/whatevs">
<div class="tdStreacher"> linkName
</div>
</a>
</td>
.tdStreacher{
height: 100%;
width: 100%;
padding: 3px;
}
Таким образом, все площадь каждой ячейки будет выступать в качестве связующего звена, следовательно, вся строка действует как ссылка.
не видел принятого решения, да? Не работает в 1999/xhtml, потому что высота: 100% не обязательно охватывает полную ячейку. – dube
Это плагин jQuery, основанный на решении Ника.
(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);
Ожидает, что строки будут обернуты в корпус. Высота устанавливается явно, так как исходное решение Ника не работает для меня на соседних ячейках с разной высотой. Удостоверьтесь, что в качестве блоков заданы элементы a. Если вы хотите применить отступы, применить его к а-элементам вместо ячеек таблицы:
a {
display: block;
padding: 0.25em 0.5em;
}
tbody td { padding: 0; }
Просто позвоните
$('#your-table').linkWholeRows();
Надеется, что это помогает. Cheers, Richard
Вам не нужно Jquery, если вы не возражаете, заменяя таблицу общих элементов:
<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>
Вы не сохраняете смысловое значение, которое вы получаете, используя теги table, tr и td с этим решением. – Andreas
- 1. Ссылка на строку?
- 2. Ссылка на строку в JTable
- 3. CSS - ссылка на строку ссылки
- 4. Ссылка на строку с объектом
- 5. Ссылка на строку внутри NSURL
- 6. Ссылка на верхнюю строку таблицы
- 7. Ссылка на строку подключения DataContext
- 8. Ссылка на объект через строку
- 9. Ссылка на строку в InputBox?
- 10. Ссылка на строку в QPlainTextEdit
- 11. Ссылка на строку из ресурсов на интерфейс
- 12. Ссылка Entity Framework на datatable строку
- 13. C++ Возвращаемая ссылка на одну строку матрицы
- 14. Ссылка на родительскую строку шаблона Gridview?
- 15. Ссылка на ячейку как строку в формуле
- 16. C# ссылка на строку в FIM
- 17. Ссылка на последнюю строку в формуле Excel
- 18. Ссылка на строку подключения в настройках
- 19. Ссылка на строку из XML-ресурса
- 20. Ссылка на строку php в jquery?
- 21. Ссылка на командную строку MSBuild зарезервированное свойство
- 22. Ссылка на строку из другой таблицы (PostgreSQL)
- 23. Ссылка на конкретную строку в источнике javascript?
- 24. Ссылка PHP на строку, добавленную в имя
- 25. Назначение значений из кнопки «Ссылка» на строку
- 26. отслеживание ошибок Excel + ссылка на строку кода?
- 27. Ссылка на текущую строку в функции INDIRECT
- 28. Ссылка на строку в формате HTML?
- 29. Когда родительская строка ссылка на ребенок строку
- 30. Ссылка на определенную строку таблицы в html
Google поисковый запрос «JQuery тр ссылку» дал мне несколько решений уже. Может быть, вам стоит попробовать? Я не отвечаю на ваш вопрос, потому что у меня нет никакого опыта jquery, поэтому я могу сказать что-то «глупое» ;-) – RuudKok
да, это дает вам результаты, но я бы не рассмотрел большинство ответов. Если я google «dog poop tr link», я также получаю «ответы». :) – hacintosh
Два предлагаемых решения JQuery являются проблематичными для удобства использования и доступности. Решение CSS лучше для любого общедоступного веб-сайта. Смотрите мои комментарии там. –