获取上一个选定的下拉项

时间:2010-10-28 10:27:48

标签: jquery button drop-down-menu

我有以下代码,其中我有一个下拉列表(class =“ addToList ”,然后是一个按钮(Class =“ addtoButton ”):

当我点击按钮时,我想从上一个下拉列表中获取当前选定的值和文本。

$(".addToPortalButton").live('click', function (e) {

// grab the previous dropdown list value and text here.

});

使用jquery执行此操作的最简单方法是什么。

这是html:

<select class="addToList" id="Teams" name="Teams">
     <option></option>
    <option value="49">Team 1</option>
    <option value="22">Team 2</option>
</select>
<input type='button' class="addToButton" value='Add to' />

<select class="addToList" id="Teams" name="Teams">
     <option></option>
    <option value="49">Team 1</option>
    <option value="22">Team 2</option>
</select>
<input type='button' class="addToButton" value='Add to' />

<select class="addToList" id="Teams" name="Teams">
     <option></option>
    <option value="49">Team 1</option>
    <option value="22">Team 2</option>
</select>
<input type='button' class="addToButton" value='Add to' />

2 个答案:

答案 0 :(得分:4)

您可以使用.prev().prevAll()之前获取<select>,如下所示:

编辑:对于不推荐使用.live()的新版jQuery,新的.on()语法为:

$(document).on('click', '.addToButton', function (e) {
  var sel = $(this).prevAll('.addToList:first'),
      val = sel.val(),
      text = sel.find(':selected').text();    
});

旧版本:

$(".addToButton").live('click', function (e) {
  var sel = $(this).prevAll(".addToList:first"),
      val = sel.val(),
      text = sel.find(':selected').text();    
});

答案 1 :(得分:0)

您可以使用以下代码执行此操作:

$(".addToButton").on('click', function (e) {

    var $el = $(this).prev().find('option:selected');

});

然后,您可以使用$el.val()$el.text()分别获取值和文字。