[英]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>
.closest()
然后使用.prev()
获取父级选择
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.