Как добавить гиперссылку в строку таблицы <tr>
У меня есть таблица со строкой <tr>
таблицы, генерируемой в цикле для формирования нескольких строк.
Я хочу дать отдельную ссылку <a>
каждому <tr>
. Поскольку в таблице мы можем добавлять только данные только в <td>
, я не могу этого добиться.
Есть ли другой способ добиться этого?
Ответы
Ответ 1
Html:
<table>
<tr href="http://myspace.com">
<td>MySpace</td>
</tr>
<tr href="http://apple.com">
<td>Apple</td>
</tr>
<tr href="http://google.com">
<td>Google</td>
</tr>
</table>
JavaScript с помощью jQuery Библиотека:
$(document).ready(function(){
$('table tr').click(function(){
window.location = $(this).attr('href');
return false;
});
});
Вы можете попробовать это здесь: http://jsbin.com/ikada3
CSS (необязательно):
table tr {
cursor: pointer;
}
ИЛИ допустимая версия HTML с data-href
вместо href
:
<table>
<tr data-href="http://myspace.com">
<td>MySpace</td>
</tr>
<tr data-href="http://apple.com">
<td>Apple</td>
</tr>
<tr data-href="http://google.com">
<td>Google</td>
</tr>
</table>
JS:
$(document).ready(function(){
$('table tr').click(function(){
window.location = $(this).data('href');
return false;
});
});
CSS
table tr[data-href] {
cursor: pointer;
}
Ответ 2
Воспроизведение @ahmet2016 и сохранение стандарта W3C.
HTML:
<tr data-href='LINK GOES HERE'>
<td>HappyDays.com</td>
</tr>
CSS
*[data-href] {
cursor: pointer;
}
JQuery
$(function(){
$('*[data-href]').click(function(){
window.location = $(this).data('href');
return false;
});
});
Ответ 3
Самый простой способ, которым я нашел превращение строки таблицы в ссылку, - использовать атрибут onclick с window.location.
<table>
<tr onclick="window.location='/just/a/link.html'">
<td></td>
</tr>
</table>
Ответ 4
Если вы говорите, что хотите сделать каждый <tr>
доступным для кликов, вы можете добавить событие click
к каждому <tr>
или, еще лучше, добавить обработчик .delegate()
в table
, который управляет нажимает на его элементы <tr>
.
$('#myTable').delegate('tr','click',function() {
alert( 'i was clicked' );
});
Этот код предполагает, что ваш table
имеет идентификатор myTable
:
<table id="myTable">
<tr><td> cell </td></tr>
<tr><td> cell </td></tr>
</table>
Если это не то, что вы имели в виду, то, пожалуйста, уточните свой вопрос и разместите соответствующий код javascript, который вы используете.
Ответ 5
Я согласен с первым ответом, требуется дополнительная информация. Но если вы просто пытаетесь создать таблицу ссылок, вы можете просто сделать
<tr><td><a href="...">...</a></td></tr>
Ответ 6
Премиум-предложение было бы добавить теги при создании таблицы. Если вам нужно сделать это после отображения таблицы и вы хотите использовать javascript, вы всегда можете добавить что-то вроде
var mytable = document.getElementById("theTable")
var myrows = mytable.rows
for(i=0;i < myrows.length;i++)
{
var oldinner;
oldinner = myrows[i].cells[0].innerHTML;
myrows[i].cells[0].innerHTML = "<a>" + oldinner + "</a>";
}
или если вам нужно сделать это для каждой ячейки, всегда можете
var mytable = document.getElementById("theTable")
var myrows = mytable.rows
for(i=0;i < myrows.length;i++)
{
mycells = myrows[i].cells;
for(a=0;a < mycells.length;a++)
{
var oldinner;
oldinner = mycells[a].innerHTML;
mycells[a].innerHTML = "<a>" + oldinner + "</a>";
}
}
Надеюсь, вы найдете это полезным
Ответ 7
PHP:
echo "<tr onclick=\"window.location='".$links[$i]."'\">......";
Javascript без jQuery:
x=1;
.
.
for (...) {
var tr=document.createElement('tr');
tr.onclick=function() { window.location='page'+(x++)+'.html'}
tr.style.cursor='pointer';
.
}
позволит пользователю щелкнуть по каждой строке
вы также можете использовать массив для загрузки страниц:
x=0;
var pages=["pagea.html","pageb.html"]
.
.
for (...) {
var tr=document.createElement('tr');
tr.onclick=function() { window.location=page[x++];}
tr.style.cursor='pointer';
.
}
Ответ 8
<tr><td><a></a></td></tr>
Ответ 9
jQuery.wrap
возвращенный якорь в td
, а затем добавить в tr
и jQuery.appendTo table
$('ith anchor element in array').wrap('<td />').wrap('<tr />').appendTo('table#table_id');
Ответ 10
Вы можете просто генерировать с и внутри, как предложила Николь:
<tr><td><a href="url">title of the url</a></td></tr>
Или поместите URL-адрес в тег tr, например
С включенным jQuery
$('tr.clickable').click(function(){
window.location = $(this).attr("title");
});
чтобы привести вас к этой странице при щелчке (в основном взломать tr, чтобы работать как тег (просто мысль, никогда не попробовать).
Ответ 11
добавить
и измените стиль отображения для отображения: block
и добавьте такой же размер для этого:
CSS
#Table a {
display:block;
}
#Table td {
width:100px;
hright:100px
}
HTML:
<table id="Table">
<tr><td><a onclick="" href="#"> cell </a></td></tr>
<tr><td> cell </td></tr>
</table>
Ответ 12
Вы можете использовать data-href
script, чтобы добавить href в любые элементы html. Он делает html действительным, поскольку он добавляет только атрибут data-href
к элементу.
https://github.com/nathanford/data-href/