[英]Make text in table cell to urls using javascript
我有一些表,并且如果它们以http开头,我会尝试使表单元格中的内容作为url。 我尝试过的代码如下。 问题是:它正在成为超链接而不是URL。(例如:如果表格单元格内容是https://www.google.com的文本,则它正在变成的最终链接是"https://myapplicationlink/www.google.com"
。我无法找出原因。请帮助。
var tables=document.getElementsByTagName("TABLE");
for (x=0;x<tables.length;x++)
{
var rows=tables[x].getElementsByTagName('TR');
for (i=0; i<rows.length; i++)
{
var cells=rows[i].getElementsByTagName('td');
for (z=0;z<cells.length;z++)
{
//code for styling etc which i removed
var hyp;var c;
c=cells[z].innerHTML;
if (c.indexOf("http") >= 0) {
hyp="<a href=" + cells[z].innerHTML +"</a>";
c=hyp;
cells[z].innerHTML = c;
}
}
}
}
不知道为什么会得到您要描述的错误,但是您没有在代码中关闭href标签...
hyp="<a href=" + cells[z].innerHTML +"</a>";
应该
hyp="<a href=\"" + cells[z].innerHTML +"\">some text here</a>";
另外,您可以像这样将单元格转换为可点击的位置,而不是将href绘制到单元格中
var hyp;var c;
c=cells[z].innerHTML;
if (c.indexOf("http") >= 0)
cells[z].onclick = (function(url){self.location.href = url})(c);
好吧,您要为其中一个插入无效的HTML。 这行:
hyp="<a href=" + cells[z].innerHTML +"</a>";
实际上应该是:
hyp='<a href="' + cells[z].innerHTML + '">' + cells[z].innerHTML + '</a>';
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.