-2

如何组合这两个选择器:

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

这不行!

我想要实现的是:

  • 使用类listas从td获取选择输入
  • 获取选中选项

笔记:

  • 在这个td中,我有两个选择输入。

代码工作:

    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 and :selected


更新

重新编辑:

在这个 td 中,我有两个选择输入。

如果它们不是多选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

如果它们是多选的,请结合上述两种技术:

// 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 回答