我使用以下代码将列动态添加到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++;
}
现在我想把列作为链接。我怎么能这样做?
由于
答案 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);