Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/413.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 如何向表格行添加超链接<;tr>;_Javascript_Php_Css_Html Table - Fatal编程技术网

Javascript 如何向表格行添加超链接<;tr>;

Javascript 如何向表格行添加超链接<;tr>;,javascript,php,css,html-table,Javascript,Php,Css,Html Table,我有一个表,它的表行在一个循环中生成,以形成多行 我想为每个提供单独的链接。因为在表中,我们只能将数据添加到中,所以我无法实现这一点 有没有其他方法可以实现这一点?如果您想让每个都可单击,您可以向每个添加单击事件,或者更好的是,将.delegate()处理程序添加到管理其元素单击的表中 $('#myTable').delegate('tr','click',function() { alert( 'i was clicked' ); }); 此代码假定您的表具有myTableID: &

我有一个表,它的表行
在一个循环中生成,以形成多行

我想为每个
提供单独的
链接。因为在表中,我们只能将数据添加到
中,所以我无法实现这一点


有没有其他方法可以实现这一点?

如果您想让每个
都可单击,您可以向每个
添加
单击事件,或者更好的是,将
.delegate()
处理程序添加到管理其
元素单击的

$('#myTable').delegate('tr','click',function() {
    alert( 'i was clicked' );
});
此代码假定您的
具有
myTable
ID:

<table id="myTable">
    <tr><td> cell </td></tr>
    <tr><td> cell </td></tr>
</table>

细胞
细胞
如果这不是你的意思,那么请澄清你的问题,并发布你正在使用的相关javascript代码。


<tr><td><a></a></td></tr>

这?

我同意第一个回答,需要更多信息。但是如果你只是想建立一个链接表,你可以这样做

<tr><td><a href="...">...</a></td></tr>

高级建议是在生成表时添加标记。如果需要在呈现表之后执行此操作,并且希望使用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
对于(i=0;i
或者如果你需要对每个细胞都这样做,你可以

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>";
  }
}
var mytable=document.getElementById(“theTable”)
var myrows=mytable.rows
对于(i=0;i
我希望您能发现以下内容很有帮助

PHP:

echo "<tr onclick=\"window.location='".$links[$i]."'\">......";
将允许用户单击每一行 您也可以使用数组加载页面:

 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';
 .
 }
将返回的锚点添加到
td
,然后添加到
tr

$('ith anchor element in array').wrap('<td />').wrap('<tr />').appendTo('table#table_id');
$('ith anchor element in array').wrap('').wrap('').appendTo('table#table_id');

您只需按照Nicole的建议使用发电机和发电机内部即可:

<tr><td><a href="url">title of the url</a></td></tr>
单击即可进入该页面(基本上是将tr作为标签进行黑客攻击)(只是一个想法,永远不要真正尝试它。

加载项

并将显示样式更改为“显示:块”

并添加相同的尺寸,如下所示:

CSS:

#Table a {
display:block;
}
#Table td {
width:100px;
hright:100px
}
<table id="Table">
    <tr><td><a onclick="" href="#"> cell </a></td></tr>
    <tr><td> cell </td></tr>
</table>
HTML:

#Table a {
display:block;
}
#Table td {
width:100px;
hright:100px
}
<table id="Table">
    <tr><td><a onclick="" href="#"> cell </a></td></tr>
    <tr><td> cell </td></tr>
</table>

细胞
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>
您可以在这里尝试:

CSS(可选):

或者使用
数据href
而不是
href
的HTML有效版本:

<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>
CSS:


播放@ahmet2016并保持其W3C标准

HTML:

jQuery:

$(function(){       
    $('*[data-href]').click(function(){
        window.location = $(this).data('href');
        return false;
    });
});

我发现将表行转换为链接的最简单方法是将onclick属性与window.location一起使用

<table>
<tr onclick="window.location='/just/a/link.html'">
<td></td>
</tr>
</table>

您可以使用
数据href
脚本在任何html元素中添加href。它使html有效,因为它只向元素添加
数据href
属性


对于仅限PHP的修复,只需将每一行所需的链接添加到该行中的每一个单元格。安德鲁,这是一个仅限PHP的修复吗?我唯一的问题是href在技术上不是表行的有效属性。如果没有javascript,此解决方案无法工作,盲人也无法访问。使用
数据href
可以修复此问题无效属性问题。
href
数据href
有问题:如果我用jquery
$('table tr')选择。首先()
然后
href
数据href
属性消失,因此我无法通过
.attr('href')
数据('href')访问它们
另一个问题是您正在中断中间的单击。我对
href
数据href
有问题:如果我使用jquery
$('table tr')进行选择。首先()
然后
href
数据href
属性消失,因此我无法通过
.attr('href')
数据('href')访问它们
对于那些从jQuery 1.7开始阅读本文的读者:“从jQuery 1.7开始,.delegate()已被.on()方法取代。”
$(document).ready(function(){
    $('table tr').click(function(){
        window.location = $(this).data('href');
        return false;
    });
});
table tr[data-href] {
    cursor: pointer;
}
<tr data-href='LINK GOES HERE'>
    <td>HappyDays.com</td>
</tr>
*[data-href] {
    cursor: pointer;
}
$(function(){       
    $('*[data-href]').click(function(){
        window.location = $(this).data('href');
        return false;
    });
});
<table>
<tr onclick="window.location='/just/a/link.html'">
<td></td>
</tr>
</table>