0

Ok。誰も私の話を聞いていないので、私が望む方法ではなく、私が望むことを行う WORKING CODE を示すことで、質問を言い換えてみます。

注: これを行う方法を尋ねているわけではありません。私はもっ​​と尋ねています...最善の方法は何ですか...

// まず、適切な値が必要です
$select.find("option:selected").prop("selected", false);
$select.find("option:first").prop("selected", true);

// ここで、イベントを発生させる必要があります
$select.trigger("変更");

ただし、これを1行で行いたいと思います...この質問の最後のコード行のように。

10年間フロントエンドの仕事をしてきた人が知っていると思うようなことは言わないでください。

オリジナル - 以下に基づいて回答しないでください

jQuery である必要はありませんが、私はそれを使用しているので、jQuery である必要はありません。

基本的に、私が言いたいことは

var $option = $select.find("option:first");
$option.trigger("click");

しかし、それは実際には機能しません。つまり、そうですが、選択時に変更イベントも発生していないようです...だから、実際にはもっと似たようなことをすべきだと思っています...

$select.triggerEvent(新しいイベント({
    タイプ:「変更」、
    ターゲット: $option
});

しかし、それは正しくありません。

4

3 に答える 3

1

ドロップダウン.val()の値を変更するために使用します。select

$select.val($select.find('option:first').val());
于 2012-11-20T19:01:14.957 に答える
0

.attrメソッドを使用できます

var $option = $select.find("option:first");
$option.attr('selected', true); 

または、選択に を使用.val()します

var $option = $select.find("option:first").val();
$select.val($option);
于 2012-11-20T19:06:23.490 に答える
0

次のように prop() jQuery メソッドを使用できます。

$select.find('option:first').prop('selected',true);

これは意味的にオプションを選択済みとして設定する正しい方法であり、1.6 以降の jQuery でプロパティを設定する正しい方法でもあるようです。

1.6 より前のjQuery を使用している場合は、代わりにそれを行う必要があります。

$select.find('option:first').attr('selected',true);

選択時に変更イベントをトリガーする必要がある場合は、次のようにすることができます。

$select.find('option:first').prop('selected',true);
$select.change();

これが実際の例です

1行で行う必要がある場合は、いくつかの方法でjQueryを拡張できます(テストされたコードではありません)

;(function($){
    $.fn.changeToOption = function(n) {

        var option;

        option = this.find('option').eq(n);

        if (option.prop('selected',true)) {
            this.change();
        }

        return this;

    }
})(jQuery)

そして単純に:

$select.changeToOption(0);
于 2012-11-20T19:08:04.457 に答える