1

jqueryフィルターメソッドを使用してこれらのことをどのように行うことができるのか疑問に思っています:

テーブル行のセル1から4および6から8を選択します。

また

そのテーブルのTRでセル1とセル6〜8を選択します。

私はこれらの方法をテストしましたが、役に立ちませんでした。

最初の場合:filter('gt(2):lt(4)、gt(7):lt(8))'

2番目の場合:filter('eq(2)、gt(7):lt(8)')

以下のコードでは、結果は(最初のセル5を除くセル番号1から8)および(2番目のセル1セル6セル7セル8)のようになります。

<table cellpadding="0" cellspacing="0" border="0" class="display" id="selection">
    <tbody>
        <tr>

            <td>cell1</td>
            <td>cell2</td>
            <td>cell3</td>
            <td>cell4</td>
            <td>cell4</td>
            <td>cell5</td>
            <td>cell6</td>
            <td>cell7</td>
                        <td>cell8</td>
        </tr>   
    </tbody>
</table>

ありがとうございました。

4

3 に答える 3

1

jqueryフィルターを使用できます。

// exclude 5th column (zero based indexes)
$(your_selector_to_cels).filter(function(index) { return index != 4; })

// get only column 1, 6, 7, 8
$(your_selector_to_cels).filter(function(index) { return index == 0 || (index >= 5 && index <= 7); })

あなたがそれをどのようにハードコーディングしたいかはわかりませんが、これはそれを行う方法です。

于 2012-08-20T15:45:32.917 に答える
1

これは役立ちます:

$('TABLE TD').slice(1, 9).not(':eq(4)').css({'color': '#f00'});

http://jsfiddle.net/NNNqF/

于 2012-08-20T15:45:37.523 に答える
1

このセレクターを使用できます。

$('#selection tr:eq(0)').find('td:lt(4), td:gt(4):lt(3)')

最初の部分$('#selection tr:eq(0)')では、特定の行 (この場合は行 0、最初の行) からセルのみを選択するようにします。

パート 2 に関するいくつかの注意事項:

  1. find以前に返された jQuery オブジェクト内で選択するために使用します。
  2. gtltセレクターはゼロインデックスベースです。したがって、最初のセルを選択するには、 「インデックスが 1 未満のセルを選択'td:lt(1)する」という意味を使用します。td同様に、最後のものを選択するには、 「 8 より大きいインデックスでtd:gt(8)選択する」という意味を使用する必要があります (ゼロベースであるため、10 個の要素が 0 から 9 まで移動するため、9 が最後です)。td
  3. 複数のセレクターを で区切ることができます,'td:lt(1), td:gt(8)'最初と最後のセルの両方を取得します
  4. 最後に大事なことを言い忘れましたが、 and をチェーンするgtと特定の動作がありますlt。6、7、および 8 を取得するには、セレクターが であることに注意してくださいtd:gt(4):lt(3)gt(4)は 4 を超えるインデックスを持つセルを取得します (インデックスがゼロのコレクションでは、インデックス 5 が 6 番目の項目であることを思い出してください) :lt(3)。インデックスを使用してチェーンすると、以前の から返された に対して相対的になりgt、最終的にはあなたが求めていることを意味します。次の 3 つの項目。
于 2012-08-20T16:09:39.347 に答える