如何从HtmlTableCellElement获取文本

时间:2016-05-24 13:00:42

标签: javascript jquery

处理一个简单的jquery tic-tac-toe项目。我试图遍历板并将每个单元格的值保存在一个数组中,但无法弄清楚如何访问每个td内的文本。我尝试过.text()和.value()但都返回undefined

的index.html:

<html>
    <head>
        <title>jQuery Tic Tac Toe</title>
    </head>
    <body>
        <table border="1" cellpadding="40">
            <tr>
                <td data-x="0" data-y="0">Test</td>
                <td data-x="1" data-y="0"></td>
                <td data-x="2" data-y="0"></td>
            </tr>
            <tr>
                <td data-x="0" data-y="1"></td>
                <td data-x="1" data-y="1"></td>
                <td data-x="2" data-y="1"></td>
            </tr>
            <tr>
                <td data-x="0" data-y="2"></td>
                <td data-x="1" data-y="2"></td>
                <td data-x="2" data-y="2"></td>
            </tr>
        </table>
        <div id="games"></div>
        <div id="message"></div>
        <button id="save">Save Game</button>
        <button id="previous">Show Previous Games</button>
    </body>
</html>

井字toe.js:

function getBoard(){
    board = [];
    $.each($("td"), function(index, cell){
        board.push(cell); //Need to return contents of cell
    });
    alert(board);
}

3 个答案:

答案 0 :(得分:2)

您需要使用.text()

 $.each("td", function(index, cell) {
   board.push($(cell).text()); //Need to return contents of cell
 });

答案 1 :(得分:2)

试试这个: -

使用此cell.innerHTML代替cell

        function getBoard() {
            board = [];
            $.each($("td"), function (index, cell) {
                board.push(cell.innerHTML); //Need to return contents of cell
            });
            alert(board);
        }

希望这会对你有所帮助。

答案 2 :(得分:1)

您可以尝试这种方式,在此链接上进行了解释:https://stackoverflow.com/a/3072366/6356627

function GetCellValues() {
        var table = document.getElementById('mytable');
        for (var r = 0, n = table.rows.length; r < n; r++) {
            for (var c = 0, m = table.rows[r].cells.length; c < m; c++) {
                alert(table.rows[r].cells[c].innerHTML);
            }
        }
    }