2014-11-17 149 views
1

我无法获得所选的<option>值。 <select> s是从数据库动态形成表格行。所有<select>都具有相同的类名。从特定选择中获取选定的选项值

这里是我的HTML:

<tr> 
    <td class="std_code">2014-1-10</td> 
    <td>Student 10</td> 
    <td>66</td> 
    <td>100</td> 
    <td>66</td> 
    <td> 
     <select class="degree_accept_id"> 
      <option value="1">BA(LAW)</option> 
      <option value="2">BE(EE)</option> 
     </select> 
    </td> 
    <td>17 November 2014</td> 
    <td> 
     <a href="" class="ee_accept_suggestion"><i class="fa fa-check fa-lg"></i></a> 
    </td> 
</tr> 
<tr> 
    <td class="std_code">2014-1-9</td> 
    <td>Student 9</td> 
    <td>69</td> 
    <td>100</td> 
    <td>69</td> 
    <td> 
     <select class="degree_accept_id"> 
      <option value="1">BA(LAW)</option> 
      <option value="2">BE(EE)</option> 
     </select> 
    </td> 
    <td>17 November 2014</td> 
    <td> 
     <a href="" class="ee_accept_suggestion"><i class="fa fa-check fa-lg"></i></a> 
    </td> 
</tr> 
<tr> 
    <td class="std_code">2014-1-8</td> 
    <td>Student 8</td> 
    <td>71</td> 
    <td>100</td> 
    <td>71</td> 
    <td> 
     <select class="degree_accept_id"> 
      <option value="1">BA(LAW)</option> 
      <option value="2">BE(EE)</option> 
      <option value="3">BE(ME)</option> 
     </select> 
    </td> 
    <td>17 November 2014</td> 
    <td> 
     <a href="" class="ee_accept_suggestion"><i class="fa fa-check fa-lg"></i></a> 
    </td> 
</tr> 

JS代码:

<script> 
    $(document).ready(function() { 
     $('.ee_accept_suggestion').click(function(e) { 
      e.preventDefault(); 
      var std_code = $(this).parent().siblings(".std_code").text(); 
      //var selected_degree = $(".degree_accept_id option:selected", this).attr("value"); 
      //var selected_degree = $(this).val(); 
      var selected_degree = $("select.degree_accept_id").val(); 
      alert(selected_degree); 
     }); 
    }); 
</script> 

问题:alert总是显示。

回答

3

如果你想相对于点击事件下拉列表中选择的值,用这个

$('.ee_accept_suggestion').click(function(e){ 
var dropdownValue = $(this).closest('tr').find('.degree_accept_id').val(); 

正在发生的事情是

  • 首先,点击元素用于$(this)和被包裹在一个jQuery对象可以访问API,
  • closest('tr')首先搜索自己,然后第一次出现的父节点是<tr>
  • 一旦找到<tr>元素,.find('.degree_accept_id')将找到归类为“degree_accept_id”的该tr下的元素。
  • jQuery的.val()获取与输入,选择(在本例中)或textarea元素相关联的值。
+1

这实际上工作!但是,$(this).closest('tr')背后的逻辑是什么?find('。degree_accept_id')。val(); – Shariati

+0

@Shariati - 查看编辑的解释:) –

+0

Thanks @ Travis J – Shariati

相关问题