Javascript 如何将类添加到所有行

Javascript 如何将类添加到所有行,javascript,jquery,Javascript,Jquery,在给定的示例中,我可以在单击td中的复选框时选择/取消选择每一行,但如何在单击id=selectAll from th时选择/取消选择所有行 JS: $document.readyfunction{ $selectAll.clickfunction{ 如果$this.is':选中'{ $input[type='checkbox'].propchecked,true; $table tr.addClasswarning; } 否则{ $input[type='checkbox'].propche

在给定的示例中,我可以在单击td中的复选框时选择/取消选择每一行,但如何在单击id=selectAll from th时选择/取消选择所有行

JS:

$document.readyfunction{ $selectAll.clickfunction{ 如果$this.is':选中'{ $input[type='checkbox'].propchecked,true; $table tr.addClasswarning; } 否则{ $input[type='checkbox'].propchecked,false; $table tr.removeClasswarning; } }; $input[type='checkbox'].change函数{ 如果$this.is:已选中{ $this.closest'tr'.addClasswarning; }否则{ $this.recest'tr'。removeClasswarning; $selectAll.propchecked,false.removeClasswarning; } }; }; 标题 标题 你好 你好 你好 你好 你好 你好 你好 你好
您需要检查单击的复选框是否为selectAll或与此$this不同。attr'id'=='selectAll'

$document.readyfunction{ $input[type='checkbox'].change函数{ 如果$this.attr'id'=='selectAll'{ 如果$this.is:已选中{ $'table'.find'tr'.addClasswarning; $'table'.findinput[type='checkbox'].prop'checked',true; }否则{ $'table'。查找'tr'。删除ClassWarning; $'table'.findinput[type='checkbox'].prop'checked',false; } }否则{ 如果$this.is:已选中{ $this.closest'tr'.addClasswarning; }否则{ $this.recest'tr'。removeClasswarning; } 如果$input[type=checkbox]:选中。不是“selectAll”。长度==0{ $'selectAll'。属性'checked',false; }如果$input[type='checkbox']:选中。而不是'selectAll'。长度==$input[type='checkbox']。而不是'selectAll'。长度{ $'selectAll'。属性'checked',true; } } }; }; 标题 标题 你好 你好 你好 你好 你好 你好 你好 你好
应涵盖所有情况,包括在选择/取消选择其他输入时适当切换selectAll

   var $dataInputs;

   var $selectAll = $('#selectAll').change(function() {
       $dataInputs.prop('checked', this.checked)
                .closest('tr')
                .toggleClass("warning", this.checked);
   });


   $dataInputs = $("input[type='checkbox']").not('#selectAll').change(function(e) {
     // toggle class on this row
     $(this).closest('tr').toggleClass("warning", this.checked);

     // adjust `selectAll` based on all rows selected or not 
     $selectAll.prop('checked', function() {
       return $dataInputs.length === $dataInputs.filter(':checked').length;
     });

   });

不需要两个功能的可能重复。请尝试我的答案@AppyDoesn不管理selectAll的类,或在取消选中某行时取消选中selectAll注意,如果在先前选中所有行时取消选中某行,则不会取消选中selectAll
   var $dataInputs;

   var $selectAll = $('#selectAll').change(function() {
       $dataInputs.prop('checked', this.checked)
                .closest('tr')
                .toggleClass("warning", this.checked);
   });


   $dataInputs = $("input[type='checkbox']").not('#selectAll').change(function(e) {
     // toggle class on this row
     $(this).closest('tr').toggleClass("warning", this.checked);

     // adjust `selectAll` based on all rows selected or not 
     $selectAll.prop('checked', function() {
       return $dataInputs.length === $dataInputs.filter(':checked').length;
     });

   });