5

私はこれに非常に似たドロップダウンを持っています:

<select id='someSelect'>
    <option value="0">---select one---</option>
    <optgroup label="Bikes">
        <option value="B-4">Hayabusa</option>
        <option value="B-2">GSXR</option>
        <option value="B-3">Ninja</option>
        <option value="B-6">Enticer</option>
    </optgroup>
    <optgroup label="Cars"> 
        <option value="C-4">Audi TT</option>
        <option value="C-2">Awesome Car</option>
        <option value="C-23">Japanese car</option>
        <option value="C-9">German car</option>
    </optgroup>
</select>

1番目のグループの1番目の要素(ここではバイク)を選択したいだけです。jQueryでどのように処理しますか?

現在、私はこれを試しました:

$('#someSelect option:nth-child(1)').attr("selected", "selected");

しかし、問題は、3つの最初の要素(--select--、、HayabusaおよびAudi TT)があるため、3つすべてを選択し、最終的に選択することです。Audi TT

eachいくつかのことを実行して2番目の要素だけを選択しようとしましたが、ドロップダウンが動的であることに気付きました。デフォルトの要素(つまり--select one--)ではなく、最初のグループの最初の要素を選択します。

jsfiddleをモックアップしようとしましたが、マックアップされて機能していません。理由はわかりません:-/
ここで確認できます

4

7 に答える 7

7

これが例で、これが私が使用したセレクターです:

$("#someSelect optgroup option:first").attr("selected", "selected");

ご覧のとおり、optgroup要素の内部を調べて最初のオプションを使用しました。

于 2011-08-17T16:56:21.140 に答える
4

これはうまくいきます:

http://jsfiddle.net/nYd67/1/

$(function(){
    $('#someSelect optgroup:eq(0) option:eq(0)').attr("selected", "selected");
});
于 2011-08-17T16:55:48.187 に答える
4

selectの代わりにoptgroupから選択します。

$('optgroup[label=Bikes] option:first')

または、ラベルを指定したくない場合は、optgroupもフィルタリングします。

$('optgroup:first option:first')
于 2011-08-17T16:56:50.453 に答える
3

セレクターにoptgroupを含めるだけです。

$('#someSelect optgroup:nth-child(2) option:nth-child(1)')

:nth-child()セレクターは0ベースではなく、1ベースであることを覚えておいてください。また、この場合、セレクターをタグ名で修飾する必要さえないので、次のようにすることもできます。

$('#someSelect :nth-child(2) :nth-child(1)')
于 2011-08-17T16:56:30.553 に答える
2

私はいつもそれ.eq()がずっと使いやすいと思っています。これは、jsfiddleで正しく機能しているようです。

$('#someSelect option').eq(1).attr("selected", "selected");  
于 2011-08-17T16:55:26.790 に答える
2
$('#someSelect optgroup:first option:first').attr('selected', true);

これは動作します、私はあなたのhtmlでテストしました

于 2011-08-17T16:59:03.570 に答える
1

IDが「someSelect」の要素optionの最初の最初のセレクター:optgroupselect

"select#someSelect > optgroup:nth-child(1) > option:nth-child(1)"
于 2011-08-17T16:59:39.577 に答える