Каков самый стандартный и совместимый способ превратить целую строку таблицы в ссылку?

Очевидно, Вы не можете просто окружить <tr> тег с <a> отметьте и прекратите дело; это недопустимо и даже не работает. Я видел используемый JavaScript, но затем что происходит с браузерами, которые не поддерживают JavaScript? Что лучший способ состоит в том, чтобы сделать всей строкой таблицы <tr> в ссылку?

Править: По требованию Lerxst вот пример таблицы с некоторыми строками:

<table>
    <thead>
        <tr><th>Name</th><th>Number of widgets</th></tr>
    </thead>
    <tbody>
        <tr><td>Bob Smith</td><td>Three</td></tr>
        <tr><td>Chuck Norris</td><td>Infinity+1</td></tr>
    </tbody>
</table>
6
задан Brian Tompsett - 汤莱恩 30 May 2017 в 17:28
поделиться

4 ответа

Я бы предпочел поместить ссылку в наиболее логичную для нее ячейку (вероятно, в название), а затем добавить обработчик событий следующего содержания:

 tr.onclick = function (e) {
     location.href = this.getElementsByTagName('a')[0].href;
 }

Клиенты, не использующие JS, по-прежнему смогут использовать обычную ссылку.

Более эффективно прикрепить обработчик события к таблице и использовать объект события для поиска элемента с щелчком мыши, а затем подниматься вверх по дереву родителей, пока не попадет в строку. Этого, вероятно, лучше всего добиться с помощью такой библиотеки, как YUI или jQuery.

4
ответ дан 17 December 2019 в 02:25
поделиться

LINK

В основном вы создаете видимость того, что строка действует как ссылка, с помощью CSS меняя цвета для отображения ссылок и создавая события при наведении мыши и клике, которые реагируют и перенаправляют на соответствующее изменение, ссылка объясняет, как это сделать

В качестве запасного варианта можно добавить тег link в код, если JS недоступен, таким образом люди без JS могут использовать ссылку, включенную в строку. таким образом у вас есть запасной вариант

0
ответ дан 17 December 2019 в 02:25
поделиться
<html><head>
    <style type="text/css">
    table a { display: block; }
    table a:hover { background: yellow; }
    .name { display: block; float: left; width: 300px; }
    </style>

</head><body>
        <table>
        <thead>
            <tr><th class="name">Name</th><th>Number of widgets</th></tr>
        </thead>
        <tbody>
            <tr><td colspan="2"><a href="#"><span class="name">Bob Smith</span>Three</a></td></tr>
            <tr><td colspan="2"><a href="#"><span class="name">Bob Smith</span>Three</a></td></tr>
        </tbody>
    </table>

</body></html>
0
ответ дан 17 December 2019 в 02:25
поделиться
Другие вопросы по тегам:

Похожие вопросы: