插入包含从其他列+文本中获取的数据的新列

时间:2012-09-14 04:26:11

标签: javascript html

我是新来的,对编程知识非常有限。我只是使用我从网上找到的任何内容并将它们过期。让我解释一下我的意思。

我有一个类似这样的数据库文本文件。

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')

我该如何解决这个问题?数据是用户可以单击以打开文件的超链接。

2 个答案:

答案 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