我有一个html组件
<div class='clearfix gbo' id='11tonne_truck' data-capaciteit='11 tonne truck'>
<div style='float: left;' class='bb'><img class='tic' src='<?php echo base_url(' assets/images/map_icons/truck_3.svg '); ?>'></div>
<div style='float: left;' class='economy'>10 Tonne Truck</div>
<div style='float: right;' class='infuhr'>
<ion-icon class='ic' name='information-circle-outline' data-toggle='tooltip' data-placement='right' title='lorem ipsum'></ion-icon>
</div>
<div style='float: right;' class='bb transport_amount' id='11tonne_truck_amount'>Ksh 250 <br/> <span class='pt' id='11tonne_truck_pt'>Pickup by 00:00 pm</span></div>
<div class='typesd'>
<label class='radio-inline'>
<input type='radio' name='optradio' value='any' checked>Any</label>
<label class='radio-inline'>
<input type='radio' name='optradio' value='closed'>Closed</label>
<label class='radio-inline'>
<input type='radio' name='optradio' value='open'>Open</label>
</div>
</div>
,我想获取包含单选按钮的标签。我已经尝试过了
$('input:radio[name="optradio"]').change(function() {
var selectedText = $('label').closest('.radio-inline').text();
var selectedCapacity = $('.gbo').closest('#11tonne_truck').attr('data-capaciteit');
alert(selectedText);
alert(selectedCapacity);
});
这就是结果http://jsfiddle.net/ay8z749k/10/
我只获得整套单选框,但我只对单击的单选按钮的值感兴趣。
我如何正确设置selectedText
答案 0 :(得分:1)
使用this
关键字在处理程序中获取更改的输入。要获取父项<label>
标签,请使用closest()
方法。因此,以下代码将显示所选单选按钮的文本。
$('input:radio[name="optradio"]').change(function() {
var $input=$(this);
console.log('The value is ' + $input.val());
console.log('The label text is ' + $input.closest('label').text());
});
<script src="https://cdnjs.cloudflare.com/ajax/libs/jquery/3.3.1/jquery.min.js"></script>
<div class='clearfix gbo' id='11tonne_truck' data-capaciteit='11 tonne truck'>
<div style='float: left;' class='bb'><img class='tic' src='<?php echo base_url(' assets/images/map_icons/truck_3.svg '); ?>'></div>
<div style='float: left;' class='economy'>10 Tonne Truck</div>
<div style='float: right;' class='infuhr'>
<ion-icon class='ic' name='information-circle-outline' data-toggle='tooltip' data-placement='right' title='lorem ipsum'></ion-icon>
</div>
<div style='float: right;' class='bb transport_amount' id='11tonne_truck_amount'>Ksh 250
<br/> <span class='pt' id='11tonne_truck_pt'>Pickup by 00:00 pm</span></div>
<div class='typesd'>
<label class='radio-inline'>
<input type='radio' name='optradio' value='any' checked>Any
</label>
<label class='radio-inline'>
<input type='radio' name='optradio' value='closed'>Closed
</label>
<label class='radio-inline'>
<input type='radio' name='optradio' value='open'>Open
</label>
</div>
</div>
另一种方法是将侦听器附加到<label>
。该技巧使用event bubbling。因此,在以下代码段中,this
将引用<label>
,其中包括更改的输入。
$('label').change(function() {
console.log($(this).text());
});