获取收音机框中的标签名称

时间:2019-01-11 13:55:04

标签: jquery html

我有一个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

的值

1 个答案:

答案 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());
});