2012-10-26 23 views
1

我有一個表結構喜歡這個檢索表jQuery的過濾單元格數據

  <table id="oustandingItems"> 
      <thead> 
       <tr><th>Category</th> 
       <th>Details</th> 
       <th></th> 
      </tr></thead> 
      <tbody> 
       <tr> 
        <td> 
         <select id="OICategory"> 
          <option value="1">Fault</option> 
          <option value="2">Shortage</option> 
          <option value="3">Retorfit</option> 
          <option value="4">Labour</option> 
          <option value="5">Other</option> 
         </select> 
        </td> 
        <td><textarea id="OIDetails" rows="3" cols="62"></textarea></td> 
        <td><button id="addNewRow" class="addbutton">>Add</button></td> 
       </tr> 
       <tr> 
        <td>&nbsp;</td> 
        <td class="detailsCounter textareacounter">185 characters remaining</td> 
        <td>&nbsp;</td> 
       </tr> 
      <tr> 
       <td class="evenrow">Fault</td> 
       <td class="evenrow">ghgfhgfhgfhgfh</td> 
       <td class="butCell evenrow"> 
        <button class="removeitem">Remove</button> 
       </td> 
      </tr> 
      <tr> 
       <td class="oddrow">Fault</td> 
       <td class="oddrow">cvbcvbcvbcvbcvb</td> 
       <td class="butCell oddrow"> 
        <button class="removeitem">Remove</button> 
       </td> 
      </tr> 
     </tbody> 
     </table> 

我試圖從奇數和偶數行的第一兩款TD與此代碼

$(document).ready(function() { 
var tableHeader = $('#oustandingItems'); 
var tds = $('#oustandingItems td.evenrow, #oustandingItems  td.oddrow').filter(function(index) { 
    alert($(this).not('button.removeitem').html()); 
}); 
});​ 
檢索datat

但我沒有得到正確的輸出任何人都可以提出一個理由,爲什麼我得到按鈕單元格返回以及前兩個單元格。

JSFiddle Example

回答

2

您使用filter方法,但實際上不過濾的元素,你可以使用not方法:

$(document).ready(function() { 
    var $tableHeader = $('#oustandingItems'); 
    var $tds = $tableHeader.find('td.evenrow, td.oddrow').not('.butCell').each(function(){ 
     // alert($(this).text()) 
    }) 
}); 

http://jsfiddle.net/8rSLC/

您可以使用緩存的對象,並find方法比更有效重新查詢DOM。請注意,使用button.removeitem不會過濾td元素。

0

嘗試將此添加到您的選擇:

button:not(.removeitem) , 

即排除您的按鈕:

var tds = $('#oustandingItems td.evenrow, #oustandingItems td.oddrow button:not(.removeitem)').filter(function(index)

見jQuery選擇文檔here

+0

雖然仍然無法正常工作 – Deviland