我有一个无线电元素,我想得到文字:
<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();
,但这不是解决方案......
我做错了什么?
干杯
答案 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>
更一般地说,单选按钮元素及其标签以两种方式之一相关:
通过id
= for
,如您的示例所示
通过遏制,label
包含 input[type=radio]
如果你想处理一般情况,你可以这样做:
// 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')+"']")