繁体   English   中英

如何获得同一个类的父选择的值

[英]how to get the value of parent select with same class

这是一个示例输出,我想获取父选择选项的值,

  <ul>
     <li> 
         <select class='cbo'><option value='1' selected>1</option></select>
         <ul>
             <li>
                <select class='cbo'><option value='2' selected>2</option></select>
             </li>
         </ul>
     </li>
    </ul>



  <script>
         $('.cbo').on('change', function(){
                 var current_val = $(this).find(':selected').val();
                 var parrent_val = $(this).parent().parent().parent()
                                      .find(':selected').val();
                   console.log('parent: '+parent_val' current'+current_val);
         })
    </script>

我得到的结果是(parent_val = 2和current_val = 2)我应该为parent_val得到1的值

我可能会使用closest的导航到ul ,然后使用siblings来获得select 我也将使用val来获取值。

$('.cbo').on('change', function(){
    var $this = $(this);
    var current_val = $this.val();
    var parent_val = $this.closest("ul").siblings("select").val();
    console.log('parent: ' + parent_val + ' current' + current_val);
});

请注意,你会得到undefined父值,如果你改变了顶级之一的价值selects ,因为siblings("select")不匹配任何东西。

例:

 $('.cbo').on('change', function(){ var $this = $(this); var current_val = $this.val(); var parent_val = $this.closest("ul").siblings("select").val(); console.log('parent: ' + parent_val + ' current' + current_val); }); 
 <ul> <li> <select class='cbo'> <option value='1' selected>1</option> <option value='2'>2</option> <option value='3'>3</option> <option value='4'>4</option> </select> <ul> <li> <select class='cbo'> <option value='1'>1</option> <option value='2' selected>2</option> <option value='3'>3</option> <option value='4'>4</option> </select> </li> </ul> </li> <li> <select class='cbo'> <option value='1'>1</option> <option value='2' selected>2</option> <option value='3'>3</option> <option value='4'>4</option> </select> <ul> <li> <select class='cbo'> <option value='1'>1</option> <option value='2' selected>2</option> <option value='3'>3</option> <option value='4'>4</option> </select> </li> </ul> </li> <li> <select class='cbo'> <option value='1'>1</option> <option value='2'>2</option> <option value='3' selected>3</option> <option value='4'>4</option> </select> <ul> <li> <select class='cbo'> <option value='1'>1</option> <option value='2' selected>2</option> <option value='3'>3</option> <option value='4'>4</option> </select> </li> </ul> </li> </ul> <script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script> 

 $('.cbo').on('change', function() { var current_val = $('option:selected',this).val(); var parrent_val = $(this).closest('ul').prev('select.cbo').find('option:selected').val(); console.log('parent: ' + parrent_val+ ' current' + current_val); }) 
 <script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script> <ul> <li> <select class='cbo'><option value='1' selected>1</option><option value='2' >2</option></select> <ul> <li> <select class='cbo'><option value='1' >1</option><option value='2' selected>2</option></select> </li> </ul> </li> <li> <select class='cbo'><option value='3' selected>3</option><option value='4' >4</option></select> <ul> <li> <select class='cbo'><option value='3' >3</option><option value='4' selected>4</option></select> </li> </ul> </li> </ul> 

  1. 使用此上下文获取当前选择
  2. 使用.closest()然后使用.prev()获取父级选择

暂无
暂无

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

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