在一个视频中,我有5-15个动态创建的下拉列表,如下所示:
<select class="task-type" id="21">
<option value=""></option>
<option value="easy">easy</option>
<option value="hard">hard</option>
</select>
其中类task-type
用于每个下拉列表,id
对于每个下拉列表都是唯一的,并表示数据库中的记录,因此它们从1到10000不等。
然后我有以下jQuery代码尝试选择已更改其值的下拉列表的值:
$( '.task-type-select' ).change(function(){
alert($( ".task-type-select option:selected" ).text());
});
但是,它会提醒每个下拉列表的值,我需要的只是当前更改的值。
非常感谢任何帮助或指导。
答案 0 :(得分:5)
使用$(this)
/ this
来引用当前的选择,而不是使用.task-type-select
alert($(this).find("option:selected" ).text());
由于 text 和 value 在您的情况下是相同的,因此您可以使用.value
或.val()
而不是很长时间来获取所选的选项文本
alert(this.value);
答案 1 :(得分:3)
您可以使用this
关键字来引用引发事件的元素。从那里,您可以使用val()
方法获取所选值:
$('.task-type-select').change(function(){
console.log($(this).val());
});
答案 2 :(得分:1)
选择具有“task-type”类,但在JQ中使用'.task-type-select'。
这个例子是工作:
HTML:
<select class="task-type" id="21">
<option value="123">qweqwe</option>
<option value="easy">ea1sy</option>
<option value="hard">ha1rd</option>
</select>
和jQ:
$(document).ready(function(){
$( '.task-type' ).change(function(){
alert($( ".task-type option:checked" ).text());
});
})