获取支票输入收音机的标签

时间:2015-03-16 10:58:36

标签: javascript jquery

我有一个无线电元素,我想得到文字:

<div class="fleft multiplecolumns">
<div class="rdbUniteWrapper" style="line-height:20px">
    <span class="EasilyRadioWrapper EasilyControlWrapper">
        <span class="EasilyRadio EasilyChecked"></span>
        <input id="rdbUnite_106" name="rdbUnite" type="radio" value="106" class="formElementHidden" checked="checked" style="opacity: 0;">
    </span>
    <label for="rdbUnite_106" style="font-weight: bold">kg (kilogramme)</label>
</div>

我试过$('input:radio[name=radio]:checked').next().text();,但这不是解决方案......

我做错了什么?

干杯

5 个答案:

答案 0 :(得分:1)

input:radio不是label元素的兄弟,其父span是。因此,您需要遍历父级,然后转到下一个兄弟元素:

 $('input:radio[name=radio]:checked').parent().next().text();

答案 1 :(得分:1)

我找到了解决方案

var labelUnite = $('label[for="' + $("input[name='rdbUnite']:checked").attr("id") + '"]').text();

感谢您的帮助

答案 2 :(得分:0)

尝试以下代码

$('input:radio[name=radio]:checked').parent().next().text();

答案 3 :(得分:0)

  

我有一个无线电元素,我想得到文本

由于这两者与id = for很好地相关,因此您可以使用属性值选择器:

// Assuming `this` is a reference to the radio button element
var label = $('label[for="' + this.id + '"]');

然后,如果您想要文本,请使用.text()

var test = label.text();

实例:

$("input[type=radio]").on("click", function() {
  alert($('label[for="' + this.id + '"]').text());
});
Click a radio button to see its label text:
<div>
  <label for="r1">This is for r1</label>
  <input type="radio" id="r1">
</div>
<div>
  <label for="r2">This is for r2</label>
  <input type="radio" id="r2">
</div>
<div>
  <label for="r3">This is for r3</label>
  <input type="radio" id="r3">
</div>
<script src="https://ajax.googleapis.com/ajax/libs/jquery/1.11.1/jquery.min.js"></script>


更一般地说,单选按钮元素及其标签以两种方式之一相关:

  1. 通过id = for,如您的示例所示

  2. 通过遏制,label 包含 input[type=radio]

  3. 如果你想处理一般情况,你可以这样做:

    // Assuming `this` is the radio button element
    var text;
    var label = null;
    if (this.id) {
        label = $('label[for="' + this.id + '"]');
    }
    if (!label || !label[0]) {
        label = $(this).closest('label');
    }
    text = label && label.text();
    

答案 4 :(得分:0)

使用此: -

var label = $("label[for='"+$('input:radio[name=radio]:checked').attr('id')+"']")