使用javascript在html表中创建链接

时间:2009-05-03 05:51:06

标签: javascript html 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++;
}

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

由于

3 个答案:

答案 0 :(得分: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);

或者,你也可以像@Anonymous建议的那样设置TableCell的innerHTML。

答案 1 :(得分:3)

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

newCell.innerHTML=  fname[j];

newCell.innerHTML=  '<a href="'+whatever+'">'+fname[j]+'</a>';

其中whatever是一个包含适当字符串的变量。

请注意fname[j]的内容都是内联的(例如,不是表格或块,如div,标题,表单 - 但表单输入正常)或者大多数浏览器过早关闭锚点。如果需要,你可以只将锚点放在单元格内容的一部分上,但最简单的方法取决于内容是什么。

答案 2 :(得分:1)

这一切都很好,但我需要链接中的图像,所以这里是代码:

  cell[k] = document.createElement('td');
   var link = document.createElement('a');
            link.setAttribute('href', "http://www.ilovethismusic.com");
            link.setAttribute('target', "_blank");

            var newimg = document.createElement('img');
            newimg.src = "http://www.ilovethismusic.com/Views/Images/bg_header.jpg";
            newimg.alt = "imageMissing";
            newimg.width = "95";
            newimg.height = "45";
            newimg.border = "0";

            link.appendChild(newimg);




        cell[k].appendChild(link);