2013-07-26 58 views
3

我發現this question on StackOverflow,有一個非常漂亮的答案,但作爲一個初學者,我希望有一個更詳細的解釋,因爲我的情況有點不同:我有這樣一個表下一個:搜索特定的文本錶行中的列使用jQuery

________________________________________________ 
| id |  name  | age |  location  | 
|----+--------------+-----+--------------------| 
| 1 | Victor  | 14 | Bucharest, Romania | 
| 2 | John   | 17 | New York, USA  | 
| 3 | Steve  | 12 | New York, USA  | 
| 7 | Michael  | 37 | Washington DC, USA | 
| 9 | Michaela  | 25 | Washington DC, USA | 
|----+--------------+-----+--------------------| 

的人的ID是我的數據庫(MySQL數據庫)設置爲AUTO_INCREMENT,所以如果我刪除一條記錄,它會像最後一個在我的表在這裏(7〜 9)。我想在我的HTML表格中搜索具有personId = 3的行。

因此,基於the question in my link,我怎麼能細化搜索是唯一ID列?

編輯@yeyene:

這是根據您的代碼的功能。其實,我並不需要更改該行的背景顏色,我需要的行的索引使用它後來與.eq(index)做一些關於它的操作:

function findTableRow(personId){ 
    $('#people tr').each(function(){ 
     if($(this).find('td').eq(0).text() == personId){ 
      return (row's index?) 
     } 
    }); 
} 
+0

如何關於你向我們展示你的代碼和你已經試過的東西? – acudars

+2

維基百科:'jQuery是一個多瀏覽器(參見跨瀏覽器)JavaScript庫,旨在簡化HTML的客戶端腳本。「jQuery不用於查詢數據庫。您發佈的鏈接是指HTML表格而不是數據庫表格。 –

+0

我還指的HTML表@馬特 – Victor

回答

9

檢查,DEMO http://jsfiddle.net/yeyene/wAxNu/

$(document).ready(function(){ 
    $('table tr').each(function(){ 
     if($(this).find('td').eq(0).text() == '3'){ 
      $(this).css('background','red'); 
     } 
    }); 
}); 
+0

。實際上這是我的錯,我應該簡單地說明我的情況,以便給出一個好的答案:) – Victor

+0

與您的代碼,我只需要添加'返回$(this).index()'謝謝 – Victor

+0

任何這個短版本?似乎':contains()'不適用於這類工作。 – Volatil3

3

可以實現與您的數據庫查詢:

SELECT (id, name, age, location) FROM table WHERE id = 3; 

如果你想使用網頁過濾器,您可以在您貼出的問題的第一個答案:

var tableRow = $("td").filter(function() { 
    return $(this).text() === "3"; 
}).closest("tr"); 

說明:

  1. 做一個var tableRow
  2. 找到所有細胞$("td")
  3. 過濾器基於函數的發現的幹細胞,這是測試單元格的內容是否爲「3」。 $(this)指向單元格,.text()輸出文本內容。 。
  4. closest("tr")被添加到選擇tr其中td被放置在
  5. 如果你想要做的事與此列,你可以這樣做:tablerow.hide()

要隱藏的所有行,而不是選定行,使用此代碼:

$('tr').not(tableRow).hide(); 

工作演示:這裏http://jsfiddle.net/hzW2a/

+0

我不能做到這一點與我的數據庫查詢,因爲我需要添加對發現的行:) – Victor

+0

確定的一類,使用'tableRow.addClass(「類名」)'然後。請看看我編輯的 – Pieter