传递参数(ID)中的jQuery获取下拉选择

时间:2014-01-30 20:13:38

标签: javascript jquery

我在页面上生成了一系列下拉列表,如下所示。

<select id="opt(1)">
  <option value="Edit">Edit</option>
  <option value="View">View</option>
</select>

<select id="opt(2)">
  <option value="Edit">Edit</option>
  <option value="View">View</option>
</select>


<select id="opt(3)">
  <option value="Edit">Edit</option>
  <option value="View">View</option>
</select>

我需要编写一个JavaScript函数,它将使用jQuery返回基于Index的下拉列表的当前选择,这是ID的一部分。

function getDropdownSelection(index) {

var sel = $('#opt(' + index + ') :selected').text();
alert(sel);
}

这不起作用。问题是: 1)如何转义ID中的() 2)如何传入$('..')中的参数值。

由于

3 个答案:

答案 0 :(得分:0)

您可以执行以下操作

为所有下拉列表添加班级名称

<select class="test" id="opt(1)">
..
</select>
<select class="test" id="opt(2)">
..
</select>

然后jQuery应该是:

$(".test").on("change", function(){
    alert($(this).attr("id"));
});

希望这有助于!!

答案 1 :(得分:0)

你的意思是这个?

$(function() {
    $("[id^=opt]").on('change', function(){
        var id = this.id;
        /* Do something */
    }); 
});
  • 选择器[id^=opt]表示startsWith,并且会获得所有匹配的elements。在这种情况下,您的html select(s)。然后,您可以在不创建额外functions的情况下执行其他操作。

另一种方法

$(function() {
    $("[id^=opt]").on('change', function(){
        var selTxt = $('option:selected', this).text();
    });
});
  • 这样您就可以从text选项中获取 (不是value selected

PS。我真的不知道你为什么会越来越复杂。

答案 2 :(得分:0)

我解决了它:

function getDropdownSelection(index) {

var sel = $('#opt\\(' + index + '\\) :selected').text();
alert(sel);
}