jquery返回select标签中所选项目的文本以及其他select标签中所选项目的文本

时间:2013-04-28 17:53:46

标签: javascript jquery html dom select

我的网站上有两个select个标签。当我尝试在一个select标记中获取所选项目的文本时,我看到它返回两个select标记的两个文本,即使我指定通过类检索数据的选择属性。

我的代码是

$('select.select').change(function(e) {

e.preventDefault(); 
var val1 = $(' option:selected').text();
alert(val1);


});

$('select.select2').change(function(e) {

e.preventDefault(); 

var val2 = $(' option:selected').text();
alert(val2);


});

警报始终包含连接的两个select标记的文本。

您的平常帮助表示赞赏。

4 个答案:

答案 0 :(得分:1)

或许更新选择器以指定选择的上下文:

$('select.select').change(function(e) {

  e.preventDefault(); 
  var val1 = $('option:selected', this).text();
  alert(val1);

  return false;

  });

选择器$('option:selected', this)将返回在已更改元素的上下文中找到的值。

答案 1 :(得分:1)

正是由于这个$('option:selected').text();,您在页面中有两个选定的选项,因此它会返回两个值。

答案 2 :(得分:1)

你需要这样做:

// Call the change event for the select
$('select.select').change(function (e) {

    e.preventDefault();

    // Get the selected option for the select in current scope
    var text = $(this).find('option:selected').text();
    alert(text );

    //return false;   No need of this, as we already called the preventDefault() method
});

答案 3 :(得分:1)

您需要在检索值时指定类:

var val1 = $('.select option:selected').text();

var val2 = $('.select2 option:selected').text();