简体   繁体   English

如何在jquery中获取最近的选定下拉值?

[英]How to get the nearest selected dropdown value in jquery?

I am trying to get the selected value of the select dropdown but I am getting undefined.我正在尝试获取选择下拉列表的选定值,但未定义。 I have a comment icon on the list and when I click on it then I am getting undefined.我在列表上有一个评论图标,当我点击它时,我会变得未定义。 I tried some alerts in the script but all are not working.我在脚本中尝试了一些警报,但都不起作用。

Any help with this?有什么帮助吗?

 $(document).on('click', '#wip_remarkUpdate', function(e) { e.preventDefault(); alert($(this).closest('.actionslist li .wip_fileStatus').find('select').val()); alert($('.wip_fileStatus').find("select").val()); alert($('#workInProgress').closest('select').find(':selected').val()); });
 <link rel="stylesheet" type="text/css" href="https://cdnjs.cloudflare.com/ajax/libs/font-awesome/5.11.2/css/all.min.css"> <div id="workInProgress"> <table border="1"> <thead> <tr> <th>Test1</th> <th>Test2</th> <th>Test3</th> <th>Test4</th> </tr> </thead> <tbody> <tr role="row" class="odd"> <td>asdasdasd asd asd</td> <td>alskda asd</td> <td>dkasdkad</td> <td> <ul class="actionslist"> <li> <select name="pp_fileStatus[]" class="form-control multipleselect wip_fileStatus" data-id="130"> <option value="" disabled="" selected="">File Status</option> <option value="1">Approved</option> <option value="2" selected="">Aggrement</option> <option value="3">Rejected</option> <option value="4">Dropped</option> </select> </li> <li><a href="javascript:void(0);" id="wip_remarkUpdate" data-id="130"><i class="far fa-comment"></i></a></li> </ul> </td> </tr> <tr role="row" class="even"> <td>asdasdasd asd asd</td> <td>alskda asd</td> <td>dkasdkad</td> <td> <ul class="actionslist"> <li> <select name="pp_fileStatus[]" class="form-control multipleselect wip_fileStatus" data-id="130"> <option value="" disabled="" selected="">File Status</option> <option value="1">Approved</option> <option value="2">Aggrement</option> <option value="3">Rejected</option> <option value="4" selected="">Dropped</option> </select> </li> <li><a href="javascript:void(0);" id="wip_remarkUpdate" data-id="130"><i class="far fa-comment"></i></a></li> </ul> </td> </tr> </tbody> </table> </div> <script src="https://ajax.googleapis.com/ajax/libs/jquery/3.4.1/jquery.min.js"></script>

You can find as below.你可以找到如下。

Also use class instead of id , because ID is unique things in document so class you can use..也使用class而不是id ,因为 ID 在文档中是唯一的东西,所以 class 你可以使用..

 $(document).on('click', '.wip_remarkUpdate', function(e) { e.preventDefault(); //alert($(this).closest('.actionslist li .wip_fileStatus').find('select').val()); alert( $(this).parents('.actionslist').find('select').find(':selected').val() ); alert( $(this).closest('li').siblings('li').find('select').val() ); });
 <link rel="stylesheet" type="text/css" href="https://cdnjs.cloudflare.com/ajax/libs/font-awesome/5.11.2/css/all.min.css"> <div id="workInProgress"> <table border="1"> <thead> <tr> <th>Test1</th> <th>Test2</th> <th>Test3</th> <th>Test4</th> </tr> </thead> <tbody> <tr role="row" class="odd"> <td>asdasdasd asd asd</td> <td>alskda asd</td> <td>dkasdkad</td> <td> <ul class="actionslist"> <li> <select name="pp_fileStatus[]" class="form-control multipleselect wip_fileStatus" data-id="130"> <option value="" disabled="" selected="">File Status</option> <option value="1">Approved</option> <option value="2" selected="">Aggrement</option> <option value="3">Rejected</option> <option value="4">Dropped</option> </select> </li> <li><a href="javascript:void(0);" id="wip_remarkUpdate" data-id="130"><i class="far fa-comment wip_remarkUpdate"></i></a></li> </ul> </td> </tr> <tr role="row" class="even"> <td>asdasdasd asd asd</td> <td>alskda asd</td> <td>dkasdkad</td> <td> <ul class="actionslist"> <li> <select name="pp_fileStatus[]" class="form-control multipleselect wip_fileStatus" data-id="130"> <option value="" disabled="" selected="">File Status</option> <option value="1">Approved</option> <option value="2">Aggrement</option> <option value="3">Rejected</option> <option value="4" selected="">Dropped</option> </select> </li> <li><a href="javascript:void(0);" id="wip_remarkUpdate" data-id="130"><i class="far fa-comment wip_remarkUpdate"></i></a></li> </ul> </td> </tr> </tbody> </table> </div> <script src="https://ajax.googleapis.com/ajax/libs/jquery/3.4.1/jquery.min.js"></script>

I have find you are not getting the perfect access of select.我发现您没有获得 select 的完美访问权限。 Just replace this.换这个就行了

$(document).on('click', '#wip_remarkUpdate', function(e) {
    e.preventDefault();
    alert($(this).closest('ul').find('li').find('select').val());
});

First thing you can not give same id to all a tag give a classname instead首先,您不能为所有标签提供相同的 id,而是提供一个类名

$(document).on('click', '.wip_remarkUpdate', function(e) {
  e.preventDefault();
  alert($(this).parent("ul").children("li").first().find("select").val() );
});

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM