从jquery中的类名获取元素id

从jquery中的类名获取元素id,jquery,html,Jquery,Html,我发现了类似的问题,但不同的是,我在多个单选按钮中有相同的类名,我想知道单击了哪个单选按钮? HTML代码就像- <input type='radio' value='1' id='country_1' name='countries' class='option_selector'> <label for='country_1'>India</label> <input type='radio' value='2' id='country_2' nam

我发现了类似的问题,但不同的是,我在多个单选按钮中有相同的
类名
,我想知道单击了哪个单选按钮? HTML代码就像-

<input type='radio' value='1' id='country_1' name='countries' class='option_selector'>
<label for='country_1'>India</label>
<input type='radio' value='2' id='country_2' name='countries' class='option_selector'>
<label for='country_2'>USA</label>
<input type='radio' value='3' id='country_3' name='countries' class='option_selector'>
<label for='country_3'>UK</label>

<input type='radio' value='1' id='city_1' name='cities' class='option_selector'>
<label for='city_1'>Jaipur</label>
<input type='radio' value='2' id='city_2' name='cities' class='option_selector'>
<label for='city_2'>Delhi</label>
<input type='radio' value='3' id='city_3' name='cities' class='option_selector'>
<label for='city_3'>Mumbai</label>
$('.option_selector').click(function () {
    var id = $('.option_selector').attr('id');
    alert(id);
});

但它总是返回第一个元素的
id
,该元素具有类名
选项\u选择器

您需要使用
来引用单击的元素

$('.option_selector').click(function() {
  var id = this.id;
  // or var id = $(this).attr('id');
  alert(id);
});

您需要使用
来引用单击的元素

$('.option_selector').click(function() {
  var id = this.id;
  // or var id = $(this).attr('id');
  alert(id);
});
您正在此处选择所有匹配的元素:

$('.option_selector').attr('id');
但是由于
click
处理程序在所单击元素的上下文中运行,因此您可以使用
this
关键字来引用该元素:

$(this).attr('id');
或者更简单地说:

this.id;
您正在此处选择所有匹配的元素:

$('.option_selector').attr('id');
但是由于
click
处理程序在所单击元素的上下文中运行,因此您可以使用
this
关键字来引用该元素:

$(this).attr('id');
或者更简单地说:

this.id;

正如已经指出的,关键是使用关键字,
this
将上下文保持在当前单选按钮内。因此
varid=$('.option_selector').attr('id')应为:

var id = this.id;
但是,一个适合与单选按钮(和复选框)一起使用的事件是
change
事件。您只想在发生
更改时触发代码

$('.option_selector').change(function() {
    var id = this.id;
    alert(id);
});
或:


正如已经指出的,关键是使用关键字,
this
将上下文保持在当前单选按钮内。因此
varid=$('.option_selector').attr('id')应为:

var id = this.id;
但是,一个适合与单选按钮(和复选框)一起使用的事件是
change
事件。您只想在发生
更改时触发代码

$('.option_selector').change(function() {
    var id = this.id;
    alert(id);
});
或:


我不确定您监视单击事件的目的,但获取所选选项的简单方法是:

$('.option_selector:checked');
这将为您提供一个仅包含选中复选框的列表。然后你就可以查到身份证或者你想要的任何东西

$('.option_selector:checked').each(function() {
var $currentcheckbox = $(this);
});

这是监视所有单击事件的替代方法。

我不确定监视单击事件的目的,但获取所选选项的简单方法是:

$('.option_selector:checked');
这将为您提供一个仅包含选中复选框的列表。然后你就可以查到身份证或者你想要的任何东西

$('.option_selector:checked').each(function() {
var $currentcheckbox = $(this);
});

这是监视所有单击事件的替代方法。

明白了。谢谢将在10分钟内选择作为答案(因此有时间限制)。向上投票:)明白了。谢谢将在10分钟内选择作为答案(因此有时间限制)。向上投票:)出于某些原因,我需要单选按钮的行为类似于复选框(即取消选择的能力)。
change
事件是否有助于这样做?还在想办法。(因为原来的问题已经回答了,答案也被选中了,我只是对你的答案投了赞成票)。谢谢,更改事件不会更改行为。如果我可以问一下,为什么您希望单选按钮的行为像复选框一样?为什么不使用复选框呢?这是一个针对医学生的简单测验项目,它是我们实际的委员会考试的复制品。他们提供4个选项,带有单选按钮(可以取消选中)而不是复选框。因此,我不想在实际考试中给学生造成不必要的混乱。你想为此创建一个新问题吗?我只是用if(选中)进行测试,然后在单击事件时取消选中
。如果失败,不幸的是,我将不得不创建一个新的问题,出于某些原因,我需要单选按钮的行为类似于复选框(即取消选择的能力)。
change
事件是否有助于这样做?还在想办法。(因为原来的问题已经回答了,答案也被选中了,我只是对你的答案投了赞成票)。谢谢,更改事件不会更改行为。如果我可以问一下,为什么您希望单选按钮的行为像复选框一样?为什么不使用复选框呢?这是一个针对医学生的简单测验项目,它是我们实际的委员会考试的复制品。他们提供4个选项,带有单选按钮(可以取消选中)而不是复选框。因此,我不想在实际考试中给学生造成不必要的混乱。你想为此创建一个新问题吗?我只是用if(选中)进行测试,然后在单击事件时取消选中
。如果失败,不幸的是,我将不得不提出一个新问题