2017-01-23 7 views
0

jqueryを使用してテーブルのセル内の正確な値を見つけようとしていますが、現在このビットがある行をクラスに追加しようとしています。作業を行いますが、そのやっはそう含まテーブルのセルで正確な値を見つけて行にクラスを追加

$("tr").find(".closeID:contains(2)").parent('tr').addClass('selected');

クラスcloseIDを持つ任意のセルには、クラスを追加しますに値を持っていますが、私はそれが正確になりたい場合ので、私はそれが勝った数1を探している場合クラスを1,10,11,12,13に追加するなど。

これは私のテーブルの中の一つの行で、データはPHPで取り込まれています。

     <tr> 
         <td>'. $i++ .'</td> 
         <td>'.dateTime($data['submit_date']).'</td> 
         <td>'.dateTime($data['event_date']).'</td> 
         <td>'.$data['project_code'].'</td> 
         <td>'.$data['project_name'].'</td> 
         <td>'.$data['event'].'</td> 
         <td>'.$data['happened'].'</td> 
         <td>'.$data['about'].'</td> 
         <td>'.$data['reporter'].'</td> 
         <td>'.$data['org'].'</td> 
         <td>'.$data['trackside'].'</td> 
         <td>'.$data['location'].'</td> 
         <td>'.$data['number'].'</td> 
         <td>'.$data['breach_rule'].'</td> 
         <td>'.$data['life_rule'].'</td> 
         <td>'.$data['require_feed'].'</td> 
         <td>'.$data['email'].'</td> 
         <td>'.get_region_id($data['region']).'</td> 
         <td>'.$data['closed_out'].'</td> 
         <td>'.$data['rssb_num'].'</td> 
         <td style="display:none;" class="closeID">'.$data['id'].'</td> 
         <td style="display:none;">'.$data['file_upload'].'</td> 
        </tr> 

お手伝いできますか? お時間をいただきありがとうございます。

+0

をしてください使用は、あなたは、私たちが見ることのためにそれが簡単になりそうだ「* [MCVE] *、」その方法として、あなたのHTMLのスニペットを提供することができ問題の答えを形作るときに起こっていること(そしてあなたが持つかもしれない問題)? –

+0

@DavidThomas私はテーブルの行を追加しました。 – dawigster

+0

idはページ内で一意である必要がありますので、 '$("#closeID:contains(2) ")に近い( 'tr')。addClass( 'selected');'で十分です。 –

答えて

0

完全一致テストを行う方法はないので、コレクションをループして値をチェックする必要があります。

$(".closeID").filter(function() { 
    return $.trim($(this).text()) == "1"; 
}).closest("tr").addClass("selected"); 

overオプションでは、TDのテキストを使用する代わりにデータ属性を使用します。このようにして、シンプルなセレクタで参照するだけです。

<tr data-id="10"> 

だけ属性セレクタ

$('tr[data-id="10"]').addClass("selected"); 
+0

これは完全に動作します私は属性セレクタを使用しており、魅力のような作品はあなたの助けに感謝します – dawigster

0

テーブル内の各セルをループして値を確認できます。私は(それがはるかに速く実行されます)

var table = document.getElementById('your-table-id'); 

var rows = table.getElementsByTagName('tr'); 

for (var row = 0; row < rows.length; row++) { 

    var cells = rows[row].getElementsByTagName('td'); 

    for (var cell = 0; cells < cells.length; cell++) { 

    if (cell.innerHTML === 'the string your looking for'){ 
     jQuery(rows[row]) 
     .parent('tr') 
     .addClass('selected'); 
    } 
    } 
} 
+0

これは完璧に見えるので、それを変更する方法があるので、closeIDのクラスを持つセルのみを表示しますか? – dawigster

0

$(".closeID").filter(function(i,DOM){ 
    return (/*condition here*/); 
    }) 
    .closest('tr') 
    .addClass('selected')‌​; 

最初の部分$(".closeID")は、closeIDであなたにすべてのタグをリストを降りてみてください、このためのjQueryを介してプレーンJavaScriptを使用してお勧めしますCSSクラス。次に、フィルタ機能を使用して、必要なものを選択できます。最後の部分で、あなたが望む修正を加えることができます。

+0

値を.closeIDと比較するにはどうすればよいですか? – dawigster

関連する問題