我可以使用选项:在不知道元素ID的情况下选择吗?

时间:2012-07-30 18:36:22

标签: jquery jquery-ui jqgrid

我有一个带有下拉(选择)列的jqGrid。当select的selected选项发生变化时,我需要运行一些验证。我已经将change事件解雇了,但我无法弄清楚我需要用来获取所选选项的语法。通常情况下,这是simple

$("#someDropDownId option:selected").text();

我可以在运行时构建下拉列表ID,但在我的生活中无法弄清楚如何获取所选文本。

var rowId = $("#grid").jqGrid('getGridParam', 'selrow');
var selectId = rowId + '_Description';
//selectId is the ID of the select element, how do I get the selected value now??

我尝试过所有方式的组合,例如$("selectId option:selected").text();,但我无法理解。是否可能,如果可能,语法是什么?

3 个答案:

答案 0 :(得分:2)

您可以使用on()方法:

$('select').on('change', function(e){
    var selectedOptionText = $(this).find('option:selected').text();
});

JS Fiddle proof of concept

或者更简单:

$('select').on('change', function(e){
    var selectedOptionText = $(this).find('option').eq(this.selectedIndex).text();
});

JS Fiddle proof of concept

答案 1 :(得分:1)

如果您在事件处理程序内,则可以执行$(this).val();

文本

$(this).find("option:selected").text();

答案 2 :(得分:0)

而不是$("selectId option:selected").text()$("#selectId").val()