1

さて、質問のタイトルを定式化するのは簡単ではありませんでした。多分編集者はそれを改善できますか?

状況:同じクラス名のテーブルが 4 つあります。

<table class="tb">
  <tr><td class="markit">1a</td></tr>
  <tr><td>1b</td></tr>
  <tr><td>1c</td></tr>
</table>
<table class="tb">
  <tr><td>2a</td></tr>
  <tr><td>2b</td></tr>
</table>
<table class="tb">
  <tr><td>3a</td></tr>
  <tr><td>3b</td></tr>
</table>
<table class="tb">
  <tr><td class="markit">4a</td></tr>
  <tr><td>4b</td></tr>
</table>

jqueryで、同じ table内の以下のすべてのセル の境界線の色を変更したいと考えています。.markit<td>1b</td><td>1c</td><td>4b</td>

私は試した:

$(".markit").each( function() {
  $('td:nth-child('+($(this).index()+1)+')').css('border-left','4px solid #CCD');
});

しかし、それはすべてのtdを変更しています。

現在の親の tds のみを使用するように jquery に指示する必要がありますが、セレクターの設定方法がわかりません。

作業コードは、このカレンダー " Ferienkalendar " で見ることができます。今日のコラムを参照してください。

4

3 に答える 3

3

これまでで最もきれいなコードではありませんが、これを試してください:

$("table .markit").parent('tr').nextAll().find('td').css('border-left', '4px solid #CCD');

フィドルの例

このコードは、すべて.markitの要素を見つけてから、tdのすべての兄弟trの要素を見つけて、markitそれらにスタイルを追加します。そのスタイリングをクラスにしてaddClass、将来のメンテナンスを容易にするために使用することをお勧めします。元の要素addBack()を含めるために使用することもできます。.markit

$("table .markit").parent('tr').nextAll().addBack().find('td').addClass('after-markit');

オリジナルマーク要素を含む例

于 2013-10-08T09:31:47.347 に答える
0

このようにしてみてください:

$(".markit").parent().parent().find('td').each(function() {
    $(this).not('.markit').css('border-left','4px solid #CCD');
});

Jsフィドル

于 2013-10-08T09:40:06.983 に答える