jQuery - 如何知道选择器是否应该有 # 或 .或类似的东西?

jQuery - How to know if selector should have a # or . or anything like that?

我正在学习 jQuery 我 class 中的一些问题一直让我练习选择器。

这可能是最基本的,但我怎么知道我选择的特定 HTML 或 CSS 元素是否需要 $('#element')$('.element')而不仅仅是 $('element')?

jQuery(以及 DOM 函数 document.querySelectordocument.querySelectorAll)正在使用 [=56] 中的 CSS selectors 到 select 元素=].

所以基本上你会查看 (an) HTML 个元素并尝试找到标识元素的内容,例如,如果你想要一个特定的按钮:

<button id="login">Login</button>

您可以使用它的id。根据定义,ID 在页面上是唯一的,因此您将始终获得该按钮(如果 ID 不同或按钮不存在,则什么也得不到)。 "id" select或者是在实际id前面的#,所以你在这里使用#login

但是如果您想要 select 多个相似的项目怎么办?例如:

<li class="menu-item">Home</li>
<li class="menu-item">Shop</li>
<li class="menu-button">Logout</li>

如果您想要所有 menu-item 元素而不是 menu-button 怎么办? 这次你可以使用他们的 class 属性。 class selector 以 . 为前缀,因此您可以使用 .menu-item 来 select 这两个元素。

还有许多其他元素,CSS 有相当多的语法。这里有几个例子:

  • 您可以 select 通过元素的标记名:button select 所有 <button> 个元素
  • 您可以通过任何属性 select:button[disabled] select 所有具有 disabled 属性的按钮,例如 <button disabled>n/a</button>
  • 您可以 select 基于它们的父级:li img selects 所有直接嵌入 <li> 元素的图像

我强烈建议阅读 MDN 文章以获取更多信息。