jQuery 选择器

在本教程中,你将学习如何使用 jQuery 选择 HTML 元素。

使用 jQuery 选择元素

JavaScript 最常用于获取或修改页面上 HTML 元素的内容或值,以及应用某些效果,如 show,hide,animations 等。但是,在你执行任何操作之前,你需要查找或选择目标 HTML 元素。

通过典型的 JavaScript 方法选择元素可能会非常痛苦,但 jQuery 在这里就像一个魔术。使 DOM 元素选择简单易行的能力是 jQuery 最强大的功能之一。

提示: jQuery 几乎支持最新 CSS3 规范中定义的所有选择器,并且它有自己的自定义选择器。这些自定义选择器极大地增强了在页面上选择 HTML 元素的功能。

在以下部分中,你将看到一些在页面上选择元素并使用 jQuery 对它们执行某些操作的常用方法。

按 ID 选择元素

你可以使用 ID 选择器在页面上选择具有唯一 ID 的单个元素。

例如,当文档准备好被操作时,以下 jQuery 代码将选择并突出显示具有 ID 属性 id="mark" 的元素。

<script type="text/javascript">
$(document).ready(function(){
    // Highlight element with id mark
    $("#mark").css("background", "yellow");
});
</script> 

在上面的示例中,$(document).ready() 事件用于使用 jQuery 安全地操作页面。此事件中包含的代码仅在页面 DOM 准备就绪后才会运行。我们将在下一章中详细了解这些事件。

按类名选择元素

类选择器可用于选择具有特定类的元素。

例如,当文档准备好时,以下 jQuery 代码将选择并突出显示具有 class 属性 class="mark" 的元素。

<script type="text/javascript">
$(document).ready(function(){
    // Highlight elements with class mark
    $(".mark").css("background", "yellow");
});
</script> 

按名称选择元素

元素选择器可用于根据元素名称选择元素。

例如,以下 jQuery 代码将选择并突出显示所有段落,即文档准备好后的 <p> 元素。

<script type="text/javascript">
$(document).ready(function(){
    // Highlight paragraph elements
    $("p").css("background", "yellow");
});
</script> 

按属性选择元素

你可以使用属性选择器按其 HTML 属性之一选择元素,例如链接的 target 属性或输入的 type 属性等。

例如,以下 jQuery 代码将选择并突出显示所有文本输入,即文档准备好时 type="text"<input> 元素。

<script type="text/javascript">
$(document).ready(function(){
    // Highlight paragraph elements
    $('input[type="text"]').css("background", "yellow");
});
</script> 

按复合 CSS 选择器选择元素

你还可以组合 CSS 选择器,使你的选择更加精确。

例如,你可以将类选择器与元素选择器组合在一起,以查找具有特定类型和类的文档中的元素。

<script type="text/javascript">
$(document).ready(function(){
    // Highlight only paragraph elements with class mark
    $("p.mark").css("background", "yellow");
  
    // Highlight only span elements inside the element with ID mark
    $("#mark span").css("background", "yellow");
  
    // Highlight li elements inside the ul elements
    $("ul li").css("background", "red");
  
    // Highlight li elements only inside the ul element with id mark
    $("ul#mark li").css("background", "yellow");
  
    // Highlight li elements inside all the ul element with class mark
    $("ul.mark li").css("background", "green");
  
    // Highlight all anchor elements with target blank
    $('a[target="_blank"]').css("background", "yellow");
});
</script> 

jQuery 自定义选择器

除了 CSS 定义的选择器之外,jQuery 还提供了自己的自定义选择器,以进一步增强在页面上选择元素的功能。

<script type="text/javascript">
$(document).ready(function(){
    // Highlight table rows appearing at odd places
    $("tr:odd").css("background", "yellow");
  
    // Highlight table rows appearing at even places
    $("tr:even").css("background", "orange");
  
    // Highlight first paragraph element
    $("p:first").css("background", "red");
  
    // Highlight last paragraph element
    $("p:last").css("background", "green");
  
    // Highlight all input elements with type text inside a form
    $("form :text").css("background", "purple");
  
    // Highlight all input elements with type password inside a form
    $("form :password").css("background", "blue");
  
    // Highlight all input elements with type submit inside a form
    $("form :submit").css("background", "violet");
});
</script>