如何选择父下拉列表选择的值

时间:2011-12-07 11:45:11

标签: jquery razor drop-down-menu

我在for循环中有一个下拉列表。我在这个循环中也有一个下载pdf按钮。我希望能够点击这个下载pdf按钮然后在javascript中选择下拉列表中的选定值,然后最终运行一个函数并找到与所选值相关的正确pfd位置。

编辑:

 <table>
    <tr>
      <td></td>
      <td>
        @Html.DropDownList("Dropdown", Model.Dropdowns[i], new { id = Model.Industry[i].Id, @class = "dropdown"})
     </td>
     </tr>
     <tr>
       <td></td>
       <td>
          <a href="#" class="DownloadPDF"> Download PDF</a>                                                   
       </td>

<script type="text/javascript">
$(document).ready(function () {

   $(".DownloadPDF").click(
        function () {
            var selected = $(this).parent().find(".dropdown option:selected").val();
            alert(selected);
        }
    );
});

此代码仅返回一个说明未定义的警报

3 个答案:

答案 0 :(得分:1)

最好订阅下拉列表的change事件:

$(document).ready(function() {
    $('select.dropdown').change(function() {
       var $tr = $(this).closest('tr');
       var $btn = $tr.next().find('a.DownloadPDF');
       $btn.attr('href', 'mydownloadhandler?pdf' + $(this).find('option:selected').val()); 
    });
});

代码:http://jsfiddle.net/b4Dxv/1/

无论如何,如果我们从按钮开始:

$(document).ready(function () {
   $(".DownloadPDF").click(function () {
            var selected = $(this).closest('tr').prev().find(".dropdown option:selected").val();
            alert(selected);
        }
    );
});

答案 1 :(得分:0)

也许没有父母:

var selected = $(".dropdown option:selected", $(this).parent()).val();

答案 2 :(得分:0)

我把它下拉,链接在不同的表格单元格中,但在同一行?

您在此处所做的只是检查链接的父级。链接的父级是td元素。您需要找到的是父tr元素。试试这个:

var selected = $(this).closest('tr').find(".dropdown option:selected").val();