我使用以下代码动态地将列添加到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)
现在我想把列作为链接.我怎么能这样做?
谢谢
正如其他人所指出的那样,"将列作为链接"并不清楚你的意思.然而,作为一个社区,我们已经习惯于对真实问题进行猜测并提供基于该假设的解决方案.随着我们获得越来越多不清楚问题的经验,我们的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.
如果您尝试将单元格内容放入锚点,那么一种方法是更改
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、标题、表单——但表单输入是可以的),否则大多数浏览器会过早关闭锚点。如果需要,您可以只将锚点放在单元格内容的部分周围,但最简单的方法将取决于内容是什么。