0

スクロール可能なHTMLテーブルのセルから値を取得するのに問題があります。一部のJavaScriptコードを修正しましたが、機能しないようです。私を助けてください、私はjavascriptにかなり慣れていません。これは私の次のコードです:

Javascript

var rowIndex = 0;
var cellIndex = 0;
var nTable = "";
var nRows = 0;
var nCells = 0;

function showCoords(r,c)
{
    rowIndex = r;
    cellIndex = c;
    if(r!=0 && nTable.rows[r].cells[c].tagName != "th")
    {
var selectedValue = nTable.rows[r].cells[0].innerHTML;
        document.getElementById('celldata1').value=selectedValue;
var selectedValue = nTable.rows[r].cells[1].innerHTML;
        document.getElementById('celldata2').value=selectedValue;
var selectedValue = nTable.rows[r].cells[2].innerHTML;
        document.getElementById('celldata3').value=selectedValue;
    }
}

function getCoords(currCell)
{
    for (i=0; i<nRows; i++)
    {
        for (n=0; n<nCells; n++)
        {
            if (nTable.rows[i].cells[n] == currCell)
            {
                showCoords(i,n);
            }
        }
    }
}

function mapTable()
{
    nTable = document.getElementsByTagName("table")[1]

    nRows = nTable.rows.length;
    nCells = nTable.rows[0].cells.length;
    for (i=0; i<nRows; i++)
    {
        for (n=0; n<nCells; n++)
        {
            nTable.rows[i].cells[n].onclick = function()
            {
                getCoords(this);                    
            }
            nTable.rows[i].cells[n].onmouseover = function()
            {
                this.style.cursor = 'pointer';              
            }
        }
    }

}

onload=mapTable;

上記のjavascriptコードが構文またはロジックのいずれかで間違っているかどうかはわかりませんが、誰かがそれらを指摘するのを手伝ってくれれば嬉しいです。

HTMLコード:-

    <head>
        <meta http-equiv="content-type" content="text/html;charset=utf-8" />
        <title>My Content</title>
        <link rel="stylesheet" text="css/text" href="mycss.css" title=""></link> 
        <script type ="text/javascript" src="test.js"></script>     
    </head>

ボディパート1

これは、tableoneの各セルからそれに応じて各テキストボックスに値を表示する部分です。

    <body>

           <table border="0">
                <tbody>

                    <tr>
                        <td>Content 1:</td>
                        <td><input id="celldata1" type="text" name="content1" value="" /></td>
                    </tr>

                    <tr>
                        <td>Content 2:</td>
                        <td><input id="celldata2" type="text" name="content2" value="" /></td>
                    </tr>

                    <tr>
                        <td>Content 3:</td>
                        <td><input id="celldata3" type="text" name="content3" value="" /></td>
                    </tr>

                </tbody>
            </table>

ボディパート2

これはtableoneです。

            <table border="1" id="tableone">
                <thead>
                    <tr>
                        <th>Item</th>
                        <th>Content 1</th>
                        <th>Content 2</th>
                        <th>Content 3</th>

                    </tr>
                </thead>

                <tbody> 
                    <%! int i;%>

                    <%for(int i=0; i<50; i++){%>

                        <tr>
                        <td><%=i+1%></td>
                        <td></td>
                        <td></td>
                        <td></td
                        </tr>

                    <%}%>
            </tbody>
            </table>
        </div>

ちなみにありがとう、私の英語が上手くなければごめんなさい:)

4

1 に答える 1

0

これにはjQueryを使用します:

// Iterate throught rows of table:
jQuery("table").find("tr").each( function() {

    var currentRow = jQuery(this);

    // Iterate throught cell in current row: 
    currentRow.find("td").each(function() {

        var currentCell = jQuery(this);
        // Do what you want with cell
    });
});
于 2012-06-06T10:26:21.030 に答える