2011-04-10 74 views
2

我想獲取使用jQuery的td值我無法控制的表。在這個網站上發佈了一個很好的例子,但它在每個tr中引用了一個不是多個列的列。如何使用jQuery獲取表單元格值

我也沒有一個表或行的ID ...只有一個class=columndata爲td。

$('#mytable tr').each(function() { 
    var customerId = $(this).find("td").eq(2).html();  
} 

會得到固定tr的單個td嗎?

這裏是我的表中的數據:

<tr valign="top"> 
    <td class="columnaction" valign="center"> 
     <img src="../images/spacer.gif" width="1" height="1" /> 
     <a href="javascript:void(0);" class="columnactionlink" onclick="return doAccept('599577', '1', '','');" alt="Accept">Accept</a> 
    </td> 
    <td class="columndata">Message</td> 
    <td class="columndata">Test</td> 
    <td class="columndata"></td> 
    <td class="columndata"></td> 
    <td class="columndata">04/09/2011 23:59</td> 
    <td class="columndata">04/09/2011</td> 
    <td class="columndata">05/12/2011 07:00</td> 
    <td class="columndata">05/13/2011 07:00</td> 
    <td class="columndata"></td> 
    <td class="columndata">Doe, Jeffrey A. (xx)</td> 
    <td class="columndata">913014405580</td> 
    <td class="columndata">Skip</td> 
    <td class="columndata">04/09/2011 16:37</td> 
    <td class="columndata">C</td> 
    <td class="columndata">Doe,J</td> 
    <td class="columndata">04/09/2011 16:37</td> 
    <td class="columndata">04/09/2011 23:59</td> 
    <td class="columndata">04/09/2011 16:34</td> 
</tr> 

這裏是參考了類似的問題: How to get a table cell value using jQuery?

+1

什麼在你的示例表你想提取?@jeff – mcgrailm 2011-04-10 13:50:55

+0

雖然唯一看起來像一個id是'913014405580',這不是你的例子中的第二個'td',我不得不問。你在做什麼?(function(){});'?因爲var的範圍可能會影響你的結果。 – Khez 2011-04-10 13:52:47

回答

5

這是你所需要的選擇:

$('#mytable tbody tr td:nth-child(2)') 
1

使用.text()代替.html()

3

由於@danip指出INT他的說法,你可以直接通過 訪問TD有效的CSS選擇器

$('#mytable tbody tr td:nth-child(2)') 

一點說明他是在這裏做

  1. 他選擇表id = mytable通過使用#mytable尋址它
  2. 然後他下降到表的tbody
  3. 他選擇該表的所有trs e但進一步定義
  4. 選擇每個tr下的所有tds
  5. 最後,他從所有這些tds中僅選擇表中每個tr的第二個!

你可以在通過各自喜歡這裏返回的DOM元素迭代,並抓住通過HTML代碼的HTML或的textContent()或()文本

$('#mytable tbody tr td:nth-child(2)').each(function() { 
    output += $(this).text(); 
}); 

看到的jsfiddle嘗試一下自己

http://jsfiddle.net/SdBBy/

問候

3

在這裏的背景,但可以幫助你: 如果你有超過100行左右,上面的代碼會有點慢,一個1000行和性能就會慢很多,在這種情況下,你可以去:

$('td:nth-child(2)', '#mytable') //$(selector, context) 

和一個for循環,其中你應該先緩存此對象像

var items = $('td:nth-child(2)', '#mytable'); 
for(var i=0;i<items.length;i++) 
{ 
    //your code 
} 

問候, SJ

+0

如果我想獲得給定行的每個列值(使用ID),該怎麼辦? – Si8 2014-07-14 23:59:49

相關問題