如何组合这两个选择器:
$("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/