如何在btn点击中获得兄弟选择的价值?

时间:2018-01-10 15:16:04

标签: javascript jquery angularjs siblings

我想在按钮点击时获取所选选项的值。 问题是我有几组按钮并选择。所以,我不得不以某种方式使用兄弟姐妹,但我无法弄清楚如何.....

<div class="form-group" ng-repeat="category in categories"> 
<div id="kkal-type" class="form-options">
     <select name="{{cats[$index]}}" id="{{cats[$index]}}">
        <option value="0" >--Не выбрано--</option>

        <option ng-repeat="food in category.foods" ng-show="food.available" value="{{food.cost}}">{{food.name+" - "+food.cost+"тг"}}</option>

     </select> 
     <input type="button" value="ВЫБРАТЬ" class="choose-btn orange filled" ng-click="update(this)"/ >    
</div>  

$scope.update = function(btn) {
    console.log(  $(btn).siblings('select').val());  
};

但这不起作用。 谁知道如何使这个工作?

提前谢谢!

2 个答案:

答案 0 :(得分:1)

只需在select上使用ng-model并将该值传递给ng-click函数

 <select name="{{cats[$index]}}" id="{{cats[$index]}}" ng-model="selectedItem">

 <input type="button" value="ВЫБРАТЬ" class="choose-btn orange filled" ng-click="update(selectedItem)"/ >    

 $scope.update = function(selectedItem) {
    console.log( selectedItem);  
 };

在旁注上,请使用ng-options代替ng-repeat

<select name="{{cats[$index]}}" id="{{cats[$index]}}" ng-options="food.cost as food.name for food in category.foods" ng-model="selectedItem">
        <option value="0" >--Не выбрано--</option> 
 </select
  

答案 1 :(得分:1)

只需导航到父级$.parent(),然后向下搜索:$.find("select")

您还可以使用$.closest()方法,这将在树中查找并找到最适合您的选择器的元素,这就是您所需要的:

$scope.update = function(btn) {
    console.log(  $(btn).closest('select').val());  
};