我是新来的,对编程知识非常有限。我只是使用我从网上找到的任何内容并将它们过期。让我解释一下我的意思。
我有一个类似这样的数据库文本文件。
colh01|colh02|colh03|colh04|colh05|
data11|data12|data13|data14|data15|
data21|data22|data23|data24|data25|
data31|data32|data33|data34|data35|
data41|data42|data43|data44|data45|
现在我使用网络上的javascript将内容显示到表格中。
<script type="text/javascript">
onload = function () {
if (!document.getElementById || !document.getElementsByTagName)
return;
var frm = null,
prenode,
tbod = document.getElementById('tbod'),
data = '';
if ((frm = top.frames['buffer']) //iframe
&& frm.document) { //get <pre> parent
prenode = frm.document.getElementsByTagName('pre').item(0);
if (null != prenode
&& null != prenode.firstChild
&& /#text/.test(prenode.firstChild.nodeName)) //text node
{
data += prenode.firstChild.data; //read
data = data.split(/[\n\r]/); //separate lines
data.splice(0, 0); //lose first two (legend)
var i = 0,
l = data.length, rowdata, ii, ll, tr, td;
for (; i < l; ++i) {
tr = document.createElement('tr'); //new row
tbod.appendChild(tr);
rowdata = data[i].split("|", 6); //separate bits
for (ii = 0, ll = rowdata.length; ii < ll; ++ii) {
td = document.createElement('td'); //new cell
td.appendChild(document.createTextNode(rowdata[ii]));
tr.appendChild(td);
}
}
}
}
}
</script>
它工作正常,输出看起来像这样。
colh01 colh02 colh03 colh04 colh05
data11 data12 data13 data14 data15
data21 data22 data23 data24 data25
data31 data32 data33 data34 data35
data41 data42 data43 data44 data45
然后我想插入一个列(colh6),该列将从第一列获取数据。看起来应该是这样的
colh01 colh02 colh03 colh04 colh05 colh6 (new column)-->(link to file)
data11 data12 data13 data14 data15 'file-<data11>.pdf' -->(href='http://locahost/file-<data11>.pdf')
data21 data22 data23 data24 data25 'file-<data21>.pdf' -->(href='http://locahost/file-<data21>.pdf')
data31 data32 data33 data34 data35 'file-<data31>.pdf' -->(href='http://locahost/file-<data31>.pdf')
data41 data42 data43 data44 data45 'file-<data41>.pdf' -->(href='http://locahost/file-<data41>.pdf')
我该如何解决这个问题?数据是用户可以单击以打开文件的超链接。
答案 0 :(得分:0)
您只需修改此位即可显示链接:
for (; i < l; ++i)
{
tr = document.createElement('tr'); //new row
tbod.appendChild(tr);
rowdata = data[i].split("|",6); //separate bits
for (ii = 0, ll = rowdata.length; ii < ll; ++ii)
{
td = document.createElement('td'); //new cell
td.appendChild(document.createTextNode(rowdata[ii]));
tr.appendChild(td);
}
td = document.createElement('td') //column 6 cell
td.appendChild(document.createTextNode('<a href="http://locahost/file-' + rowdata[0] + '.pdf"> Link text here </a>'));
tr.appendChild(td);
}
答案 1 :(得分:0)
你已经完成了困难的部分,你所缺少的是如何使用Javascript创建链接。如果你只是在循环后添加这些行,它将使用第一列的内容创建一个链接;
var newlink = document.createElement('a');
newlink.setAttribute('href', 'http://localhost/file-' + rowdata[0] + '.pdf');
newlink.appendChild(document.createTextNode('Link text'));
td = document.createElement('td');
td.appendChild(newlink);
tr.appendChild(td);
有关创建动态链接的更多信息here。