0

私はここで新しく、プログラミングに関する知識が非常に限られています。私はウェブから見つけたものとそれらの有効期限を使用します。私がどういう意味か説明させてください。

このようなデータベーステキストファイルがあります。

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|

ここで、Webで見つけた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')

どうすればこれを行うことができますか?データは、ユーザーがクリックしてファイルを開くことができるハイパーリンクです。

4

2 に答える 2

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);
}
于 2012-09-14T04:37:31.763 に答える
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);

動的リンクの作成について詳しくは、こちらをご覧ください。

于 2012-09-14T04:56:57.923 に答える