0

私のコードはこのようなものです

    <table>
      <tr><td> report heading </td> </tr>
      <tr><td>export to excel button</td></tr>
      <tr><td> 
         <table id=tblGridview>
          <tr><td><asp:gridview cssclass = "OFGrid" id="grdviewID"></asp:gridview></td></tr>
         </table>
        </td>
       </tr>
    </table>

and am using below jquery to highlight the row when clicked
$(document).ready(function() {
    $('tr').filter(function() {
            return $('td', this).length && !$('table', this).length
        }).click(function() {
            $(this).toggleClass('currRow');
        });
    });

これは正常に機能しますが、問題はこれがすべての tr に対してトリガーされることです。「レポートの見出し」と「Excel にエクスポート」ボタンがある最初の 2 行をクリックしても、その行が強調表示されます。グリッドビューの行がクリックされたときにのみjqueryがトリガーされるようにjqueryを変更するにはどうすればよいですか。gridview 自体がテーブルとして出力されるため、そのテーブルに固有の jquery を制限するにはどうすればよいですか。

可能であれば、誰かがこのjqueryがどのように機能するかを1行ずつ説明してくれると非常に役立ちます。私は単にそれを理解していません。

親切に助けてください。ありがとう。

4

2 に答える 2

0

filter()条件内の最初の 2 行を除外します。

return this.index() > 1 && $('td', this).length && !$('table', this).length;
于 2013-01-05T16:02:07.990 に答える
0

gt(index)セレクターで提供されたインデックスよりも大きいインデックスを持つ要素のみに要素コレクションをフィルター処理するセレクターを使用できます

$('table').find('tr:gt(1)')....

これによりネストされたテーブルで問題が発生する場合は、いくつかのクラスをテーブルまたは行に追加することを検討する必要があります。

$('table.allowClickClass tr')....

また

$('tr').not('.noClickClass').... 

API リファレンス: http://api.jquery.com/gt-selector/

問題を理解している場合に機能する可能性のある別の単純なセレクターを編集します。

/* only apply handler to nested tables*/
$('tr table tr').click...
于 2013-01-05T16:26:56.583 に答える