2009-12-11 111 views
2

假設我在嵌入式div中的不同級別的頁面上有多個表(沒有ID或名稱)。我的選擇器(如果可能的話)將選擇所有表,而不管它位於頁面上的何處,並根據第一行中第一個單元格的內容迭代或過濾表?選擇器 - 在jQuery中選擇頁面上的所有表格

+6

http://docs.jquery.com/ – 2009-12-11 17:09:17

+4

不要只是開始使用庫。首先閱讀文檔。 DUH! – 2009-12-11 17:10:42

回答

10

您可以簡單地使用$('table')作爲選擇器。

然後,您可以使用現有的過濾器,例如「:contains」或「:has」或.filter()函數,如果您需要更細粒度的控制來過濾結果。例如,

$('table:has(td > span)') 

$('table').filter(function(index){ 
    return $(this).html() == "<tr><td>something</td></tr>"; 
}); 
2

要選擇所有表簡單得不能再簡單:

$("table") 

添加過濾器

$("table:has(td:first:contains('mytext'))") 
2

這將選擇所有表格:

$("table") 

這將選擇每個表的第一行的第一個TD手機:

$("table tr:first td:first") 
0

如果你是想看看第一個單元格的每個表的第一行中,你可以使用:

$("table tr:first td:first").each(function() { var html = this.innerHTML; /* Iterative logic here */ });

2

您可以只使用jQuery('table')讓每一個表。無論表格是處於不同級別還是嵌入在div中,或者其他內容都不會改變。

進行額外的過濾:

jQuery('table').filter(function() { ... }); 

在功能通過將表元素映射到this,你就需要返回true以保持您的收藏中,或假放棄它。

+0

我打字幾乎是一樣的東西 – 2009-12-11 17:11:52

+0

你可以使用$(this).find(「td:first」)來獲取第一個tablecell,然後執行過濾邏輯(返回true或false) – 2009-12-11 17:12:48

3

嘗試...

$("table").each(function(){ 
    var curTable = $(this); 
    var cell = $(this).find("tr:first td:first"); 

    if ($(cell).text() == "some text"){ 
    } 
}); 

或者,也可以全部由$檢查第一小區的HTML的,如果子句中(細胞)的.html()

0

你應該嘗試像$('table tr:first td:first:containts("whatever")')到抓住具有特定內容的第一行的第一個單元格。

1
$('table').each(function(){ 
    $(this).find('tr :first')... 
});