每当检查顶级单选按钮时,我都试图清除表单元素上的一堆错误样式。我试图找到:
查找所有表单元素的链接方法,因此我没有进行如此多的调用..(不确定是否可能)。
//在调用下面的函数之前定义的全局变量OR范围变量。
JS
var target = jQuery("#cachedElement");
function functionWithManyReferencesToTarget() {
target.find("input").each(function() {
$(this).removeClass("formError error-state");
});
target.find("label").each(function() {
$(this).removeClass("formError error-state");
});
target.find("select").each(function() {
$(this).removeClass("formError error-state");
});
}
答案 0 :(得分:6)
$target.find('input, label, select').removeClass('formError error-state');
答案 1 :(得分:2)
removeClass
遍历所有匹配的元素和you can use commas (,
) to separate multiple selectors,因此您的调用可以简化为:
$('#cachedElement').find('input, label, select').removeClass('formError error-state');
答案 2 :(得分:2)
你不能只做这样的事情:
$('.formError').removeClass('formError error-state');
答案 3 :(得分:1)
这使它成为一个oneliner:
jQuery("#cachedElement").find("input, label, select").removeClass("formError error-state");
答案 4 :(得分:0)
这是怎么回事?
(function($){
var $target = $('#cachedElement'); // This is confusing
$target.find('input, label, select').removeClass('formError error-state');
}(jQuery));
答案 5 :(得分:0)
使用jQuery的超级chaining
功能,可以按如下方式清除代码:
jQuery("#cachedElement").find("input, label, select").each(function() {
$(this).removeClass("formError error-state");
});
这几乎不能成为一个单行javascript代码。希望这有助于您更好地维护代码。