-2

この 2 つのセレクターを組み合わせるにはどうすればよいですか。

$("td.listas select:last option:selected")

これはうまくいきません!

私が達成しようとしているのは次のとおりです。

  • クラスlistasを使用してtdから選択入力を取得します
  • 選択されているオプションを取得する

ノート:

  • このtdには、2 つの選択入力があります。

コード作業:

    var selectprimeiro = $('td.listas select:first');
    var selectsegundo = $('td.listas select:last option');
    selectsegundo.prop("selected",true);
    var selected = $("td.listas select:last option:selected");
    selected.each(function(){
        selectprimeiro.append("<option value='"+$(this).val()+"'>"+$(this).text()+"</option>");
        selected.remove();
    });
4

2 に答える 2

4

私はあなたが欲しいと思います

var lastSelectedOptionElement = $("td.listas select option:selected").last();

最初に、選択したオプションをすべて取得し、次に最後のオプションを取得します。無償の実例| ソース

を実行したくなるかもしれませんがoption:last:selected (リストの最後のオプションがたまたま選択されていない限り)うまくいきませoptionん。 :last :selected


更新

あなたの編集を再:

この td には、2 つの選択入力があります。

それらが複数選択select要素でない場合、選択された要素を取得するにはoption:

opt = $("td.listas select:first option:selected"); // The first one
// or
opt = $("td.listas select:last option:selected");  // The last one -- this is your original selector

複数選択の場合は、上記の 2 つの手法を組み合わせます。

// The *last* selected option in the *first* select list:
opt = $("td.listas select:first option:selected").last();

// The *last* selected option in the *last* select list:
opt = $("td.listas select:last option:selected").last();

// The *first* selected option in the *first* select list:
opt = $("td.listas select:first option:selected").first();

// The *first* selected option in the *last* select list:
opt = $("td.listas select:last option:selected").first();
于 2012-06-19T14:10:40.020 に答える
1

セレクターは正しいように見えますが、間違っている可能性があるのは値の取得です.val()。最後に追加するだけです。

var lastSelVal = $("td.listas select:last option:selected").val();

大まかなデモ: jsfiddle.net/Marcel/4m3jG/

于 2012-06-19T14:15:49.580 に答える