jQuery组合选择器

时间:2012-06-19 14:07:54

标签: jquery html jquery-selectors

如何组合这两个选择器:

$("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();
    });

2 个答案:

答案 0 :(得分:4)

我想你想要

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

首先,您获得所有选定的选项,然后选择最后一个选项。 Gratuitous live example | source

您可能想要option:last:selected,但这不起作用(除非恰好选择了列表中的最后一个选项),因为option必须 :last :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();

答案 1 :(得分:1)

您的选择器看起来正确,您可能出错的地方是获取值,您只需要在其末尾添加.val()

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

粗略演示: jsfiddle.net/Marcel/4m3jG/