【JS】datatable庫使用報錯:Uncaught TypeError: datatable.rows is not a function

代碼

    <button id="table_id_example_button">獲取選中的行</button>
    <table id="table_id_example" class="display">
        <thead>
            <tr>
                <th>Column 1</th>
                <th>Column 2</th>
            </tr>
        </thead>
        <tbody>
            <tr>
                <td>Row 1 Data 1</td>
                <td>Row 1 Data 2</td>
            </tr>
            <tr>
                <td>Row 2 Data 1</td>
                <td>Row 2 Data 2</td>
            </tr>
        </tbody>
    </table>
 
    $(document).ready( function () {
        var table = $('#table_id_example').dataTable({
             //這樣配置後,即可用DT的API來訪問表格數據
            columns: [
                {data: "column1"},
                {data: "column2"}
            ]
        });
        //給行綁定選中事件
         $('#table_id_example tbody').on( 'click', 'tr', function () {
            if ($(this).hasClass('selected')) {
                $(this).removeClass('selected');
            }
            else {
                table.$('tr.selected').removeClass('selected');
                $(this).addClass('selected');
            }
        } );
        //給按鈕綁定點擊事件
        $("#table_id_example_button").click(function () {
            var column1 = table.row('.selected').data().column1;
            var column2 = table.row('.selected').data().column2;
            alert("第一列內容:"+column1 + ";第二列內容: " + column2);
        });
    } );

異常

Uncaught TypeError: table.rows is not a function

API傳送門

https://datatables.net/reference/api/rows().data()

解決

因爲我代碼裏實例化dataTable對象時,用的是$('#table_id_example').dataTable,這個小寫開頭的方法沒能獲取到API,所以需要改成$('#table_id_example').DataTable,使用大寫的DataTable對象去實例化,問題就解決了

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章