【发布时间】:2026-02-24 12:50:02
【问题描述】:
给定以下 html:
<div class="container">
<form class="form" id="login">
<h1 class="form__title">Login</h1>
<div class="form__message form__message-error"></div>
</form>
</div>
有没有一种简单的方法来引用“form__message”类的元素?我知道这是这个例子中这个类的唯一元素,但可能还有更多。所以我尝试以下方法来删除 form__message-error CSS-properties:
$("#login .form__message").classList.add("form__message--error");
然而,这并没有找到正确的元素,而以下工作:
document.querySelector("#login").querySelector(".form__message").classList.remove("form__message--error");
我正在寻找最后一条语句的 jQuery 替代方案。
【问题讨论】:
-
$("#login .form__message").classList.add("form__message--error");不是 jQuery - 你想要$("#login .form__message").addClass("form__message--error");和$("#login .form__message").removeClass("form__message--error");或$("#login .form__message").toggleClass("form__message--error"); -
嘿,试试这样的 $(".form__message","#login").removeClass("form__message--error")
-
为什么
.classList.add()删除一个类? -
$('#login').find('.form__message').first().removeClass('form__message--error');如果你想要完全等价的。 -
要么使用 jQuery
addClass方法($("#login .form__message").addClass("form__message--error");[或.removeClass])或 DOM 的classList(document.querySelector("#login .form__message").classList.add("form__message--error").classList.add("form__message--error");[或.remove])。请注意,后者(以及您的问题)假设选择器只有一个匹配项。如果可能不止一个,要得到与jQuery代码相同的效果,你需要querySelectorAll和一个循环。
标签: javascript jquery dom