不是为元素可能具有的每个类单独调用$(“#item”).removeClass(),而是可以调用一个函数来从给定元素中删除所有CSS类吗?
jQuery和原始JavaScript都可以工作。
不是为元素可能具有的每个类单独调用$(“#item”).removeClass(),而是可以调用一个函数来从给定元素中删除所有CSS类吗?
jQuery和原始JavaScript都可以工作。
当前回答
让我们用这个例子。也许你想让网站的用户知道某个字段是有效的,或者需要通过更改字段的背景色来关注它。如果用户点击重置,那么代码应该只重置包含数据的字段,而不必在页面上的其他字段中循环。
此jQuery筛选器将仅删除“highlightCriteria”类具有此类的输入或选择字段。
$form.find('input,select').filter(function () {
if((!!this.value) && (!!this.name)) {
$("#"+this.id).removeClass("highlightCriteria");
}
});
其他回答
等等,如果没有指定特定的类,removeClass()是否默认删除所有类?所以
$("#item").removeClass();
会自己做。。。
我也有类似的问题。在我的例子中,在禁用的元素上应用了aspNetDisabled类,所有禁用的控件都有错误的颜色。所以,我使用jQuery删除了我想要的每个元素/控件上的这个类,现在一切都正常了,看起来很好。
这是我删除aspNetDisabled类的代码:
$(document).ready(function () {
$("span").removeClass("aspNetDisabled");
$("select").removeClass("aspNetDisabled");
$("input").removeClass("aspNetDisabled");
});
您可以尝试:
$(document).ready(function() {
$('body').find('#item').removeClass();
});
如果您必须在没有类名的情况下访问该元素,例如,您必须添加一个新类名,则可以执行以下操作:
$(document).ready(function() {
$('body').find('#item').removeClass().addClass('class-name');
});
我在项目中使用该函数在HTML生成器中删除和添加类。
删除特定类:
$('.class').removeClass('class');
假设元素具有class=“class another class”。
由于并非所有版本的jQuery都是相同的,因此您可能会遇到与我相同的问题,这意味着调用$(“#item”).removeClass();实际上并没有删除该类(可能是一个bug)。
更可靠的方法是简单地使用原始JavaScript并完全删除class属性。
document.getElementById("item").removeAttribute("class");