0

気難しいタイトルについて申し訳ありませんが、ここに例があります:

<table>
  <tr>
    <th class="hey-1-aa"></th>
  </tr>
  <tr>
    <th class="hey-2-aa"></th>
  </tr>
  <tr>
    <td class="hey-1-bb"></tr>
  </tr>
  <tr>
    <td class="hey-2-bb"></tr>
  </tr>
</table>

クラスプレフィックス「hey-2-」で始まるすべてのTH/TRを選択するためのより良い方法はあります$('th[class^="hey-2"], td[class^="hey-2"]')か?

4

4 に答える 4

2

$('.hey-2')

sizzle (jqueryセレクターエンジン)のセレクターは、基本的なcssで始まり、そこから移動します。したがって、セレクターを使用して要素のスタイルを設定できる場合は、同じ方法でjqueryから要素を取得できます。

セレクターのリストについては、jqueryAPIをご覧ください。

編集

だから私は最初に排除することはそれをtr/thに制限し、次のようなことをすることだと思います

$('table [class^=hey-2]')

それはそれをかなり単純化します。

しかし、私は他の答えに同意する傾向があります。アイテムに合法的に共通点がある場合は、共通のクラスを与えてみませんか?class="hey-2-aa"それを作る代わりにclass="hey-2 aa" 、あなたは本当に私が投稿した元の答えを使うことができます。

于 2012-07-26T03:08:11.103 に答える
1

1つの要素に複数のクラスを使用できることに注意してください。したがって、要素により多くのクラスを設定すると便利な場合があります。選択が簡単になります。

于 2012-07-26T03:11:00.823 に答える
1
<table>
  <tr>
    <th class="hey-1-aa"></th>
  </tr>
  <tr>
    <th class="hey-2-aa sameclass"></th>
  </tr>
  <tr>
    <td class="hey-1-bb"></tr>
  </tr>
  <tr>
    <td class="hey-2-bb sameclass"></tr>
  </tr>
</table>

$(".sameclass");
于 2012-07-26T03:16:18.030 に答える
0

あなたはこれを試すことができます:

$('tr > [class^="hey-2"]')

つまり、「hey-2」で始まるクラスを持つ各tr要素の子を選択します。

デモ: http: //jsfiddle.net/CCuxX/

(または、質問のマークアップとまったく同じように$('tr:odd > *'):)

質問のマークアップを単純化したことは明らかですが、現状では、クラスを一意の識別子として使用しているようです。その場合は、IDを使用する必要があります。

于 2012-07-26T03:38:04.020 に答える