使用jQuery选择活动选择的值

时间:2016-01-28 09:26:52

标签: jquery

在一个视频中,我有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());
});

但是,它会提醒每个下拉列表的值,我需要的只是当前更改的值。

非常感谢任何帮助或指导。

3 个答案:

答案 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());
});
})