获取ButtonSet中的单击元素

时间:2010-06-22 15:22:05

标签: jquery

我想知道点击了哪个元素,以便我可以更改其CSS类。这是代码:

<script type="text/javascript">
      $(function() {
       $("#radio").buttonset();
      });
</script>

<div id="radio">
   <input type="radio" id="radio1" name="radio" /><label for="radio1">Choice 1</label>
   <input type="radio" id="radio2" name="radio" checked="checked" /><label for="radio2">Choice 2</label>
   <input type="radio" id="radio3" name="radio" /><label for="radio3">Choice 3</label>
</div>

6 个答案:

答案 0 :(得分:13)

jQuery事件返回this作为触发事件的对象。所以你只需要检查this

拥有这组元素

<div id="radio">
   <input type="radio" id="radio1" name="radio" /><label for="radio1">Choice 1</label>
   <input type="radio" id="radio2" name="radio" checked="checked" /><label for="radio2">Choice 2</label>
   <input type="radio" id="radio3" name="radio" /><label for="radio3">Choice 3</label>
</div>

选择所有无线电元素:

$("#radio :radio")

然后绑定一个事件:

.click(function(e) { });

使用this检索元素:

$("#radio :radio").click(function(e) {
    var rawElement = this;
    var $element = $(this);

    /* Do stuff with the element that fired the event */
});

<强> Example on jsFiddle.

你可以find here functions来操纵元素的类。

答案 1 :(得分:5)

您还可以使用以下方法从按钮组中检索所选单选按钮:

$j("#radioset :radio:checked")

然后用元素做任何你想做的事......

答案 2 :(得分:2)

你可以这样做:

$("#radio :radio").click(function(){
   alert($(this).attr("id")); // this refers to current clicked radio button
   $(this).removeClass('class_name').addClass('class_name');
});

答案 3 :(得分:0)

$("#radio :radio").click(function(){
    //alert($(this).attr("id"));
});

答案 4 :(得分:0)

$('#radio').bind('click', function(event){
       $('#radio').removeClass('selected');
       $(this).addClass('selected');
});

答案 5 :(得分:0)

$('#radio').buttonset().find(':radio').click(function(e) {
    var $radio = $(this);
    $radio.addClass('active');
});