簡體   English   中英

如何使用 jquery 獲取每個表格的單元格

[英]How to get cells of each table with jquery

我的 html 文件中有多個表,現在我只想看看每個表中有多少td元素。 我正在嘗試這段代碼:

function process() {
    let arr= $('table');
    for(let i=0; i<arr.length; i++) {
        let table = arr[i];
        let cells = table.find('tr').find('td');
        console.log(cells.length);
    }
}

但我收到錯誤,因為 find is not a function error at table.find('tr').find('td');

解決此問題的正確方法是什么?

你能這樣試試嗎

function process() {
    let tables = $('table');
    for(let i=0; i<tables.length; i++) {
        let table = tables[i];
        let cells = $(table).find('tr > td');
        console.log(cells.length);
    }
}

let table = tables[i];

當您在 jQuery object 上執行[#]時,結果是結果堆棧上的元素被拉出 jQuery ZA8CFDE6331BD59EB66666。 因此,如果在jQuery.fn scope 中定義了這些方法,那么此時您不能對其使用 jQuery 方法。

要解決此問題,您應該使用tables.eq(i)來獲取元素,因為eq()將元素保存在 jQuery object 中,或者將元素放回$()中以再次包裝它。

我個人提倡使用eq() ,因為它是您必須編寫的重新包裝它的少一步。

這是執行此操作的純 jQuery 方法:

totalCount = 0;
$('table').each(function(a, b) {
    totalCount += $(b).find('td').length
})
console.log(totalCount)

 totalCount = 0; $('table').each(function(a, b) { totalCount += $(b).find('td').length }) console.log(totalCount)
 <script src="https://cdnjs.cloudflare.com/ajax/libs/jquery/3.3.1/jquery.min.js"></script> <table border=1> <tr> <td>test1</td> <td>test1</td> <td>test1</td> <td>test1</td> </tr> <tr> <td>test1</td> <td>test1</td> <td>test1</td> <td>test1</td> </tr> </table> <table border=1> <tr> <td>test1</td> <td>test1</td> <td>test1</td> <td>test1</td> </tr> <tr> <td>test1</td> <td>test1</td> <td>test1</td> <td>test1</td> </tr> </table> <table border=1> <tr> <td>test1</td> <td>test1</td> <td>test1</td> <td>test1</td> </tr> <tr> <td>test1</td> <td>test1</td> <td>test1</td> <td>test1</td> </tr> </table>

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM