使用jQuery动态获取单选按钮组名称
Posted
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了使用jQuery动态获取单选按钮组名称相关的知识,希望对你有一定的参考价值。
我想询问是否有办法动态获取单选按钮组名称,即通过使用[name=some_variable]
将以下2个单击功能优化为一个。
我试过了:
$('input:radio').click(function() {
alert($('input:radio:checked').attr('name'));
});
但它总是返回我点击的第一个单选按钮组的名称。
$(document).ready(function(){
$('input:radio[name=q1]').click(function() {
var ans1 = $('input[name=q1]:radio:checked').val();
getUserAnswer(1, ans1);
});
$('input:radio[name=q2]').click(function() {
var ans2 = $('input[name=q2]:radio:checked').val();
getUserAnswer(2, ans2);
});
});
<body>
<ol>
<li><p>Q1<br />
<input type="radio" id="q1A" name="q1" value="A" />Q1 A<br />
<input type="radio" id="q1B" name="q1" value="B" />Q1 B<br />
<input type="radio" id="q1C" name="q1" value="C" />Q1 C<br />
<input type="radio" id="q1D" name="q1" value="D" />Q1 D<br />
</p></li>
<li><p>Q2<br />
<input type="radio" id="q2A" name="q2" value="A" />Q2 A<br />
<input type="radio" id="q2B" name="q2" value="B" />Q2 B<br />
<input type="radio" id="q2C" name="q2" value="C" />Q2 C<br />
<input type="radio" id="q2D" name="q2" value="D" />Q2 D<br />
</p></li>
</ol>
</body>
答案
$('input:radio').click(function() {
console.log($(this).attr('name'));
});
您在单击时选择了一组新元素,但是您需要当前元素的attr,因此您需要使用'this'来引用它
另一答案
像下面这样的东西应该工作:
$('input').click(function() {
var thisName = $(this).attr('name');
var qNum = thisName.substring(1);
var ans2 = $('input[name=' + thisName + ']:radio:checked').val();
getUserAnswer(thisName, ans2);
});
以上是关于使用jQuery动态获取单选按钮组名称的主要内容,如果未能解决你的问题,请参考以下文章
jQuery - 检查是不是选择了多个单选按钮组,然后返回未选择的人的名称
如何使用jQuery unobtrusive和Asp.Net Mvc验证动态生成的单选按钮组?
jquery 获取一组元素的选中项 - 函数jquery获取复选框值jquery获取单选按钮值