jQuery 最基本的概念是“选择一些元素并对它们进行操作”。jQuery 支持大多数 CSS3 选择器,以及一些非标准选择器。有关完整的选择器参考,请访问 api.jquery.com 上的选择器文档。
link 按 ID 选择元素
|
1
|
|
link 按类名选择元素
|
1
|
|
link 按属性选择元素
|
1
|
|
link 按复合 CSS 选择器选择元素
|
1
|
|
link 使用逗号分隔的选择器列表选择元素
|
1
|
|
link 伪选择器
|
1
2
3
4
5
6
7
8
9
10
11
12
|
|
注意:使用 :visible 和 :hidden 伪选择器时,jQuery 会测试元素的实际可见性,而不是其 CSS visibility 或 display 属性。jQuery 会查看元素在页面上的实际高度和宽度是否都大于零。
但是,此测试不适用于 <tr> 元素。对于 <tr>,jQuery 会检查 CSS display 属性,如果其 display 属性设置为 none,则认为该元素是隐藏的。
尚未添加到 DOM 的元素将始终被视为隐藏的,即使影响它们的 CSS 会使它们可见。请参阅操作元素部分,了解如何创建元素并将其添加到 DOM。
link 选择选择器
选择好的选择器是提高 JavaScript 性能的一种方法。过于具体可能是一件坏事。如果诸如 #myTable th.special 这样的选择器可以完成任务,那么诸如 #myTable thead tr th.special 这样的选择器就是多余的。
link 我的选择是否包含任何元素?
完成选择后,您通常需要知道是否有任何可供操作的内容。一个常见的错误是使用
|
1
2
3
4
|
|
这不起作用。当使用 $() 进行选择时,总是会返回一个对象,并且对象始终评估为 true。即使选择不包含任何元素,if 语句内的代码仍会运行。
确定是否存在任何元素的最佳方法是测试选择的 .length 属性,该属性告诉您选择了多少个元素。如果答案为 0,则 .length 属性在用作布尔值时将评估为 false
|
1
2
3
4
|
|
link 保存选择
jQuery 不会为您缓存元素。如果您进行了可能需要再次进行的选择,则应将选择保存在变量中,而不是重复进行选择。
|
1
|
|
将选择存储在变量中后,您可以像对原始选择调用 jQuery 方法一样对变量调用 jQuery 方法。
选择仅获取进行选择时页面上的元素。如果稍后将元素添加到页面,则必须重复选择或以其他方式将它们添加到存储在变量中的选择中。当 DOM 更改时,存储的选择不会神奇地更新。
link 优化和过滤选择
有时选择包含的内容超出了您的需求。jQuery 提供了几种用于优化和过滤选择的方法。
|
1
2
3
4
5
6
|
|
link 选择表单元素
jQuery 提供了几个伪选择器来帮助查找表单中的元素。这些特别有用,因为使用标准 CSS 选择器很难根据表单元素的状态或类型区分它们。
link :checked
不要与 :checkbox 混淆,:checked 针对的是选中的复选框,但请记住,此选择器也适用于选中的单选按钮和 <select> 元素(仅对于 <select> 元素,请使用 :selected 选择器)
|
1
|
|
:checked 伪选择器在与复选框、单选按钮和选择框一起使用时有效。
link :disabled
使用 :disabled 伪选择器可以针对任何带有 disabled 属性的 <input> 元素
|
1
|
|
为了获得使用 :disabled 的最佳性能,首先使用标准 jQuery 选择器选择元素,然后使用 .filter( ":disabled" ),或者在伪选择器前面加上标签名称或其他选择器。
link :enabled
:enabled 伪选择器基本上是 :disabled 伪选择器的反向,它针对任何没有 disabled 属性的元素
|
1
|
|
为了获得使用 :enabled 的最佳性能,首先使用标准 jQuery 选择器选择元素,然后使用 .filter( ":enabled" ),或者在伪选择器前面加上标签名称或其他选择器。
link :input
使用 :input 选择器会选择所有 <input>、<textarea>、<select> 和 <button> 元素
|
1
|
|
link :selected
使用 :selected 伪选择器针对 <option> 元素中任何选定的项目
|
1
|
|
为了获得使用 :selected 的最佳性能,首先使用标准 jQuery 选择器选择元素,然后使用 .filter( ":selected" ),或者在伪选择器前面加上标签名称或其他选择器。
link 按类型选择
jQuery 提供了伪选择器来根据其类型选择特定于表单的元素
对于所有这些,都有关于性能的旁注,因此请务必查看 API 文档以获取更深入的信息。