1

テーブルがあり、ユーザーが行をクリックすると、黄色で強調表示されます。次のように、クラスを使用してCSSを使用して色を設定します。

.highlight {
    background-color: yellow; 
}

ここで、ユーザーが送信ボタンをクリックしたときに、強調表示されたすべての行を取得し、その行から特定の列の値を取得して、それらを配列に配置したいと思います。セレクターが行データを配列に入れていないので、何かが足りません。

var arr = $('#tbl tr').filter(":has(.highlight)");

これは、ユーザーがクリックしたときに単一の行から値を取得するために別の関数で使用したものです。以下のコードは機能しますが、強調表示されたすべての行に対してこれを行う必要があります。

$(this).find('#selectedRowItem').text()

jQuery1.6.4を使用しています。ところで。

また、より良い代替手段としてデータ関数を使用してキャッシュすることを検討していましたが、より簡単なソリューションとして配列を選択しました。

これを行う方法について何かアイデアはありますか?

4

4 に答える 4

2
var highlighted=$('body .highlight');

これで問題ありません。$。eachを使用して配列をループできます。

于 2012-06-08T19:15:46.810 に答える
1
var $highlighted = $('#tbl tr.highlight');
于 2012-06-08T19:18:43.593 に答える
1

これを試して:

var $highlighted = $("#tbl .highlight [id=selectedRowItem]");
var arr = $.map( $highlighted, function (el, i) {
    return $highlighted.eq(i).text();
});

ただし、selectedRowItemIDをクラス名に変更することを強くお勧めします。IDは一意である必要があります。

于 2012-06-08T19:19:33.813 に答える
1

ジェームズ、セレクターに「has」を入れる必要はありません。したがって、以下のコードを使用すると、セレクターが機能します

$('#tbl tr').filter(".highlight")

このフィドルを見てください:http://jsfiddle.net/estevao_lucas/kDSmS/。これがお役に立てば幸いです。

于 2012-06-08T19:26:29.667 に答える