使用javascript在html表中创建链接

2 html javascript dom

我使用以下代码动态地将列添加到html表:

var tblHeadObj = window.opener.document.getElementById("maintable").tHead;
var j=0;
while(j < fname.length)
{ 
  if(tblHeadObj != null) 
  {
    for(var h = 0; h < tblHeadObj.rows.length; h++) 
    {
      var newTH = window.opener.document.createElement('th');

      tblHeadObj.rows[h].appendChild(newTH);
      //newTH.innerHTML='[th]row:'+h+'cell:'+(tblHeadObj.rows[h].cells.length-1)
    }
  }
  var tblBodyObj = window.opener.document.getElementById("maintable").tBodies[0];
  //for(var i = 0; i < tblBodyObj.rows.length; i++) {
  var newCell=tblBodyObj.rows[0].insertCell(-1);
  var newCell=tblBodyObj.rows[0].insertCell(-1);
  // newCell.innerHTML = (tblBodyObj.rows[0].cells.length - 1)
  newCell.innerHTML=  fname[j];
  j++;
}
Run Code Online (Sandbox Code Playgroud)

现在我想把列作为链接​​.我怎么能这样做?

谢谢

Cer*_*rus 9

正如其他人所指出的那样,"将列作为链接​​"并不清楚你的意思.然而,作为一个社区,我们已经习惯于对真实问题进行猜测并提供基于该假设的解决方案.随着我们获得越来越多不清楚问题的经验,我们的ESP技能变得更加磨练.

您似乎正在通过DOM方法创建HTML表.我将假设你想在创建的tablecell中创建一个链接,这是我的建议:

使用相同的createElement方法创建所需的任何元素.例如,可以使用以下代码创建链接(锚点):

var link = document.createElement("a");
link.setAttribute("href", "http://www.microsoft.com")
link.className = "someCSSclass";
// For IE only, you can simply set the innerText of the node.
// The below code, however, should work on all browsers.
var linkText = document.createTextNode("Click me");
link.appendChild(linkText);

// Add the link to the previously created TableCell.
newCell.appendChild(link);
Run Code Online (Sandbox Code Playgroud)

或者,您也可以像@Anonymous所建议的那样设置TableCell的innerHTML.


Ano*_*ous 5

如果您尝试将单元格内容放入锚点,那么一种方法是更改

newCell.innerHTML=  fname[j];
Run Code Online (Sandbox Code Playgroud)

newCell.innerHTML=  '<a href="'+whatever+'">'+fname[j]+'</a>';
Run Code Online (Sandbox Code Playgroud)

wherewhatever是一个保存适当字符串的变量。

请注意,fname[j]所有内容都是内联的(例如,不是表格或块,如 div、标题、表单——但表单输入是可以的),否则大多数浏览器会过早关闭锚点。如果需要,您可以只将锚点放在单元格内容的部分周围,但最简单的方法将取决于内容是什么。