jQuery 组合选择器



如何组合这两个选择器:

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

这不行!

我想要实现的是:

  • 使用类列表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();
    });

我想你想要

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

首先,您将获得所有选定的选项,然后获取最后一个选项。无偿现场示例 |源

您可能想做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();

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

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

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

最新更新