访问每个内部的原始对象

时间:2010-12-03 10:25:18

标签: javascript jquery

我想检查或取消选中以下代码为我工作的所有复选框

 $( '#chkboxall' ).live( 'change', function() {

                                objs=$(document).find('#chkbox');
                objs.each(function(){
                                $(this).attr( 'checked', $(this).is( ':checked' ) ? '' : 'checked' );
            });
                 });

但是我没有使用$(this).is( ':checked' ) ? '' : 'checked'而是想获得我检查过的原始复选框的状态,即$('#chkboxall')的状态。我怎么能在每个内部做到这一点?

Krishnik

1 个答案:

答案 0 :(得分:3)

你可以在没有.each()的情况下缩短它(因为.attr()可以在集合中的每个元素上运行):

$('#chkboxall').live('change', function() {
  $(document).find('#chkbox').attr('checked', this.checked);
});

这无效,您的重复chkbox id属性无效。给这些元素一个类,比如:

<input name="blah" class="chkbox" type="checkbox" />

然后在代码中使用.class selector

$('#chkboxall').live('change', function() {
  $('.chkbox').attr('checked', this.checked);
});

对于在不同情况下发现此情况的其他人,要在.each()内获取对“外this”的引用,只需设置一个变量,如下所示:

$('#chkboxall').live('change', function() {
  var thing = this;
  $('.chkbox').each(function(){
    //thing = the outer this, the #chkboxall element
  });
});