4

私は StackOverflow でこの質問を見つけまし たが、これには非常に良い答えがありますが、私の状況は少し異なるため、初心者なので、より詳細な説明が必要です: 以下のような表があります:

 ________________________________________________
 | 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)。personId = 3HTML テーブルにがある行を検索したい。

それで、私のリンクの質問に基づいて、その検索を ID 列だけに絞り込むにはどうすればよいですか?

@yeyene の編集:

これは、コードに基づく関数です。実際には、行の背景色を変更する必要はありません。後で.eq(index)操作を行うために行のインデックスが必要です。

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

2 に答える 2

13

ここをチェック、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');
        }
    });
});
于 2013-07-26T07:35:39.387 に答える
4

データベースクエリでそれを実現できます:

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/

于 2013-07-26T07:20:59.103 に答える