[英]get label for for a check input radio
我有一个要获取文本的广播元素:
<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();
但这不是解决方案...
我究竟做错了什么 ?
干杯
input:radio
不是label元素的同级元素,其父span
是。 因此,您需要遍历父跨度,然后遍历下一个兄弟元素:
$('input:radio[name=radio]:checked').parent().next().text();
我找出解决方案
var labelUnite = $('label[for="' + $("input[name='rdbUnite']:checked").attr("id") + '"]').text();
谢谢你的帮助
尝试下面的代码
$('input:radio[name=radio]:checked').parent().next().text();
我有一个要获取文字的广播元素
由于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();
用这个 :-
var label = $("label[for='"+$('input:radio[name=radio]:checked').attr('id')+"']")
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.