我在页面上生成了一系列下拉列表,如下所示。
<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)如何传入$('..')中的参数值。
由于
答案 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);
}