Jquery 用于匹配元素和更改类的更高效函数

Jquery 用于匹配元素和更改类的更高效函数,jquery,Jquery,我在这里寻找一种更有效的方法。我正在我的应用程序的不同区域之间匹配元素,同时更改表单复选框。显然有很多冗余,但我不确定简化它的最佳方法是什么,因为类名很重要。以下是我的功能: $function{ $document.on'click',group element',函数{ var targets=$”.rectangle.selected'; $targets.eachfunction{ var matchingHeight=$this.height; var matchingWidth=$

我在这里寻找一种更有效的方法。我正在我的应用程序的不同区域之间匹配元素,同时更改表单复选框。显然有很多冗余,但我不确定简化它的最佳方法是什么,因为类名很重要。以下是我的功能:

$function{ $document.on'click',group element',函数{ var targets=$”.rectangle.selected'; $targets.eachfunction{ var matchingHeight=$this.height; var matchingWidth=$this.width; $.rectangle.null.eachfunction{ 如果$this.width==匹配宽度{ $this.removeClass'matched individual element missing element complete element'.addClass'group-element'; } }; }; $targets.removeClass'selected individual element missing element complete element'。addClass'group-element'; $attributeform.ui.radio.checkbox.removeClass'checked'; $.group.propchecked,true.parent.addClass'checked'; }; $document.on'click','单个元素',函数{ var targets=$”.rectangle.selected'; $targets.eachfunction{ var matchingHeight=$this.height; var matchingWidth=$this.width; $.rectangle.null.eachfunction{ 如果$this.width==匹配宽度{ $this.removeClass'matched group element missing element complete element'。addClass'individual-element'; } }; }; $targets.removeClass'selected group element缺少element complete element'。addClass'individual-element'; $attributeform.ui.radio.checkbox.removeClass'checked'; $.individual.propchecked,true.parent.addClass'checked'; }; $document.on'click','missing element',函数{ var targets=$”.rectangle.selected'; $targets.eachfunction{ var matchingHeight=$this.height; var matchingWidth=$this.width; $.rectangle.null.eachfunction{ 如果$this.width==匹配宽度{ $this.removeClass'matched group element个别element不完整element'。addClass'missing-element'; } }; }; $targets.removeClass'selected group element个别element不完整element'。addClass'missing-element'; $attributeform.ui.radio.checkbox.removeClass'checked'; $.missing.propchecked,true.parent.addClass'checked'; }; $document.on'click','completed element',函数{ var targets=$”.rectangle.selected'; $targets.eachfunction{ var matchingHeight=$this.height; var matchingWidth=$this.width; $.rectangle.null.eachfunction{ 如果$this.width==匹配宽度{ $this.removeClass“匹配的组元素缺少元素单个元素”。addClass“不完整的元素”; } }; }; $targets.removeClass“所选组元素缺少元素单个元素”。addClass“不完整元素”; $attributeform.ui.radio.checkbox.removeClass'checked'; $.complete.propchecked,true.parent.addClass'checked'; };
}; 您可以通过在委托单击处理程序中使用多个选择器来清除此代码

每个函数中唯一不同的是添加到.rectangle.null元素的类。由于它与单击的元素的id相匹配,因此您可以使用该元素的id属性:

$function{ $document.on'click'、'组元素、单个元素、缺少元素、不完整元素',函数{ var el=这个; $'.rectangle.selected'.eachfunction{ var matchingWidth=$this.width; $.rectangle.null.eachfunction{ 如果$this.width==匹配宽度{ $this.removeClass'matched individual element missing element complete element'.addClassel.id; } }; }.removeClass“所选单个元素缺少元素不完整元素”。addClass“group-element”; $attributeform.ui.radio.checkbox.removeClass'checked'; $.group.propchecked,true.parent.addClass'checked'; };
};我投票将此问题作为离题题结束,因为有关改进/优化代码的问题是针对而不是针对。返工功能代码超出StackOverflow的范围。另外:将代码放在可重用函数中,并重用该函数。您的许多代码与您的问题无关。你能把它分解成一个单独的片段来代表所有的内容吗。这个问题急需解决。