次のマークアップを使用すると、CSSセレクターで各オプションdiv内の最初の選択メニュー以外のすべてを選択できます。
_<div class="options">
<div class="opt1">
<select title="Please choose Warranty">
<option value="">Select Waranty</option>
<option value="1">1 year guarantee</option>
<option value="2">3 year guarantee</option>
</select>
</div>
<div class="opt2">
<select title="Please choose Color">
<option value="">Select Color</option>
<option value="1">Red</option>
<option value="2">Blue</option>
</select>
</div>
<div class="opt3">
<select title="Please choose Size">
<option value="">Select Size</option>
<option value="1">Small</option>
<option value="2">Big</option>
</select>
</div>
</div>
_
ほぼ完全なcss3セレクターをサポートするPrototype内でこれを使用しているため、ブラウザーのサポートには関係ありません。
最初のセレクターは次のようになります。
_div.options div select
_
_nth-child
_と:not(:first-child)
でいくつかのバリエーションを試しましたが、機能させることができないようです。
参照: http://jsfiddle.net/uDvEt/1/
.options > div:not(:first-child) select { background:yellow;}
:not(:first-child)
を使用する場合は、div
sではなくselect
sオプションを選択する必要があります。これは、すべてのselect
が親の最初の(唯一の)子であるためです。 div
:
_div.options > div:not(:first-child) > select
_
:not(:first-child)
の代わりに、次のように、開始オフセット2で:nth-child()
を使用することができます。
_div.options > div:nth-child(n + 2) > select
_
別の選択肢は、一般的な兄弟コンビネーター_~
_(IE7 +でサポートされています)を使用することです:
_div.options > div ~ div > select
_