1

ドロップダウンであるいくつかのjqueryオブジェクトをループしている場合、selectjqueryを使用して選択したオプションのクラスを取得するにはどうすればよい$(this)ですか?

elems.each(function(idx, elem) {
    if ($(this).is('select')){
        console.log($(this, "option:selected"))
    }
});

動作しないようです。

4

4 に答える 4

5
​elems.each(function(idx, elem) {
    var ref = $(this); // caching $(this)
    if( ref.is('select') ) {
        console.log( ref.find('option:selected') );

        // OR in jQuery Context format
        console.log( $('option:selected', ref) ); // this format internally 
                                                  // called .find() method

        // to get the class
        console.log( ref.find('option:selected').attr('class') );
    }
})​;
于 2012-12-17T18:36:59.007 に答える
3

引数を渡した順序が正しくないことを除いて、ほとんどそこにいます。下記参照、

elems.each(function(idx, elem) {
    if ($(elem).is('select')){
        console.log($("option:selected", elem));
    }
});

$("option:selected", this)最初の引数はセレクターで、2 番目の引数はコンテキストです。

注: 2 番目の引数は要素自体であるため、代わりに.each使用できます。elemthis

デモ: http://jsfiddle.net/MUC6H/1/

于 2012-12-17T18:35:28.187 に答える
2

選択したオプションのクラスを取得するにはどうすればよいですか

if ($(this).is('select')){
        console.log($(this).find("option:selected").attr("class"));
    }

http://jsfiddle.net/DWEY4/

于 2012-12-17T18:31:18.137 に答える
-1

機能は試しましたhasClassか?

elems.each(function(idx, elem) {
    if ($(this).hasClass('select')){
        console.log($(this, "option:selected"))
    }
});

.さらに見てみると、クラス識別子を追加すると、元のメソッドも機能すると思います

elems.each(function(idx, elem) {
    if ($(this).is('.select')){
        console.log($(this, "option:selected"))
    }
});
于 2012-12-17T18:31:56.067 に答える