搜尋
首頁php教程PHP开发jQuery起點教程之使用選擇器和事件

jQuery起點教學之使用選擇器和事件
jQuery提供兩種方式來選擇html的elements:

第一種是用CSS和Xpath選擇器聯合起來形成一個字串來傳送到jQuery的構造器(如:$("div > ul a"));

第二種是用jQuery物件的幾個methods(方法)。這兩種方式還可以聯合起來混合使用。



為了測試這些選擇器,我們來試著在我們starterkit.html中選擇並修改第一個ordered list.

一開始,我們需要選擇這個list本身,這個list有一個ID叫做“orderedlist” ,通常的javascript寫法是document.getElementById("orderedlist").在jQuery中,我們這樣做:$(document).ready(function() {
        $("#orderedlist").addClass("red");
});這裡將starterkit中的一個CSS樣式red附加到了orderedlist上(譯者Keel註:參考測試包中的css目錄下的core.css,其中定義了red樣式)。因此,在你刷新了starterkit.html後,你將會看到第一個有序列表(ordered list )背景色變成了紅色,而第二個有序列表沒有變化.
現在,讓我們添加一些新的樣式到list的子節點.$(document).ready(function() {
        $("#orderedlist > li").addClass("blue");
});這樣,所有orderedlist中的li都附加了樣式"blue"。

現在我們再做個複雜一點的,當把滑鼠放在li物件上面和移開時進行樣式切換,但只在list的最後一個element上生效。 $(document).ready(function() {
        $("#orderedlist li:last").hover(function() {
        ) {
$(this).removeClass("green");
        });
});有大量的類似的CSS和XPath例子,更多的例子和清單可以在這裡找到。 (譯者Keel註:入門看此文,修行在個人,要想在入門之後懂更多,所以這段話的幾個鏈接遲早是要必看的!)

每一個onXXX事件都有效,如onclick,onchange,onsubmit等,都有jQuery等價表示方法(譯者Keel註:jQuery不喜歡onXXX,所以都改成了XXX,去掉了on)。其他的一些事件,如ready和hover,也提供了相應的方法。

你可以在Visual jQuery找到全部的事件列表,在Events欄目下.

用這些選擇器和事件你已經可以做很多的事情了,但這裡有一個更強的好東東! $(document).ready(function() {
        $("#orderedlist").find("li").each(function(i) {
           ). + " BAM! " + i );
        });
});

find() 讓你在已經選擇的element中作條件查找,因此$("#orderedlist).find("li") 就像$("#orderedlist li").

each()一樣迭代了所有的li,並可以在此基礎上作更多的處理。 each() 。 .html()方法是取得物件的html程式碼,而.html('xxx')是設定'xxx'為物件的html程式碼)



另一個經常碰到的任務是在沒有被jQuery覆蓋的DOM元素上call一些方法,想像一個在你用AJAX方式成功提交後的reset:$(document).ready(function() {
       / use this to reset a single form
        $("#reset").click(function() {
           );(譯者Keel註:這裡作者將form的id也寫成了form,原始檔有

,這是非常不好的寫法,你可以將這個ID改成form1或testForm,然後用$(" #form1")或$("#testForm")來表示它,再進行測試。)

這個程式碼選擇了所有ID為"form"的元素,並在其第一個上call了一個reset()。如果你有一個以上的form,你可以這樣做:$(document).ready(function() {
        // use this to reset several forms at once
  
                $("form").each(function() {
                    });
        });
});(譯者Keel註:請注意請務必親自將這些程式碼寫在custom .js中並在starterkit.html上測試效果才能有所體會! 必要時要觀察starterkit.html的html代碼)

這樣你在點擊Reset鏈接後,就選擇了文檔中所有的form元素,並對它們都執行了一次reset()。

還有一個你可能要面對的問題是不希望某些特定的元素被選擇。 jQuery 提供了filter() 和not() 方法來解決這個問題。 filter()以過濾表達式來減少不符合的被選擇項, not()則用來取消所有符合過濾表達式的被選擇項. 考慮一個無序的list,你想要選擇所有的沒有ul子元素的li元素。 $(document).ready(function() {
        $("li").not("[ul]").css("border", "1px solid black");
});這個程式碼選擇了所有的li元素,然後去除了沒有ul子元素的li元素。刷新瀏覽器後,所有的li元素都有了一個邊框,只有ul子元素的那個li元素例外。

(譯者Keel註:請注意體會方便之極的css()方法,並再次提醒請務必實際測試觀察效果,比方說換個CSS樣式呢?再加一個CSS樣式呢?像這樣:$(" li").not("[ul]").css("border", "1px solid black").css("color","re​​d");)

上面程式碼中的[expression] 語法是從XPath而來,可以在子元素和屬性(elements and attributes)上用作過濾器,例如你可能想要選擇所有的帶有name屬性的連結:$(document).ready(function() {
        $(" a[@name]").background("#eee");
});這個程式碼為所有帶有name屬性的連結加上了一個背景色。 (譯者Keel註:這個顏色太不明顯了,建議寫成$("a[@name]").background("red");)

更常見的情況是以name來選擇鏈接,你可能需要選擇一個有特點href屬性的鏈接,這在不同的瀏覽器下對href的理解可能會不一致,所以我們的部分匹配("*=")的方式來代替完全匹配("="):$(document ).ready(function() {
        $("a[@href*=/content/gallery]").click(function() {
             } );
});到目前為止,選擇器都用來選擇子元素或是過濾元素。另外還有一種情況是選擇上一個或下一個元素,例如FAQ的頁面,答案會先隱藏,當問題點擊時,答案顯示出來,jQuery程式碼如下:$(document).ready(function() {
$('#faq').find('dd').hide().end().find('dt').click(function() {
         var answer = $(this).next();
if (answer.is(':visible')) {
             answer.slideUp();
         } el    }
     });
});這裡我們用了一些鍊式表達式來減少程式碼量,而且看起來更直覺更容易理解。像'#faq' 只選了一次,利用end()方法,第一次find()方法會結束(undone),所以我們可以接著在後面繼續find('dt'),而不需要再寫$( '#faq').find('dt')。

在點擊事件中的,我們用 $(this).next() 來找到dt下面緊接的一個dd元素,這讓我們可以快速地選擇在被點擊問題下面的答案。

(譯者Keel註:這個例子真是太酷了,FAQ中的答案可以收縮!從利用next()的思路到實現這些效果都有很多地方需要我們消化,注意if (answer.is(': visible'))用法,注意answer.slideUp();不懂的地方趕緊查我在最開始提到的兩個必看API文檔)

除了選擇同級別的元素外,你也可以選擇父級的元素。或許你想在使用者滑鼠移到文章某段的某個連結時,它的父級元素--也就是文章的這一段突出顯示,試試這個:$(document).ready(function() {
        $ ("a").hover(function() {
                $(this).parents("p").addClass("highlight");
  (this).parents("p" ).removeClass("highlight");
        });
});測試效果可以看到,移到文章某段的連結時,它所在的段全用上highlight樣式,移走之後又恢復原樣。

(譯者Keel註:highlight是core.css中定義的樣式,你也可以改變它,注意這裡有第二個function()這是hover方法的特點,請在API文檔中查閱hover,上面也有範例說明) 
在我們繼續之前我們先來看看這一步: jQuery會讓程式碼變得更短從而更容易理解和維護,下面是$(document).ready(callback)的縮寫法:$(function( ) {
        // code to execute when the DOM is ready
});應用在我們的Hello world範例中,可以這樣:$(function() {
 alert("Hello world!");
        });
});現在,我們手上有了這些基礎的知識,我們可以更進一步的探索其它方面的東西,就從AJAX開始!

 更多相關文章請追蹤PHP中文網(www.php.cn)!


陳述
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn
css中id选择符的标识是什么css中id选择符的标识是什么Sep 22, 2022 pm 03:57 PM

在css中,id选择符的标识是“#”,可以为标有特定id属性值的HTML元素指定特定的样式,语法结构“#ID值 {属性 : 属性值;}”。ID属性在整个页面中是唯一不可重复的;ID属性值不要以数字开头,数字开头的ID在Mozilla/Firefox浏览器中不起作用。

css伪选择器学习之伪类选择器解析css伪选择器学习之伪类选择器解析Aug 03, 2022 am 11:26 AM

在之前的文章《css伪选择器学习之伪元素选择器解析​》中,我们学习了伪元素选择器,而今天我们详细了解一下伪类选择器,希望对大家有所帮助!

使用:nth-child(n+3)伪类选择器选择位置大于等于3的子元素的样式使用:nth-child(n+3)伪类选择器选择位置大于等于3的子元素的样式Nov 20, 2023 am 11:20 AM

使用:nth-child(n+3)伪类选择器选择位置大于等于3的子元素的样式,具体代码示例如下:HTML代码:<divid="container"><divclass="item">第一个子元素</div><divclass="item"&

javascript选择器失效怎么办javascript选择器失效怎么办Feb 10, 2023 am 10:15 AM

javascript选择器失效是因为代码不规范导致的,其解决办法:1、把引入的JS代码去掉,ID选择器方法即可有效;2、在引入“jquery.js”之前引入指定JS代码即可。

从入门到精通:掌握is与where选择器的使用技巧从入门到精通:掌握is与where选择器的使用技巧Sep 08, 2023 am 09:15 AM

从入门到精通:掌握is与where选择器的使用技巧引言:在进行数据处理和分析的过程中,选择器(selector)是一项非常重要的工具。通过选择器,我们可以按照特定的条件从数据集中提取所需的数据。本文将介绍is和where选择器的使用技巧,帮助读者快速掌握这两个选择器的强大功能。一、is选择器的使用is选择器是一种基本的选择器,它允许我们根据给定条件对数据集进

css中的选择器包括超文本标记选择器吗css中的选择器包括超文本标记选择器吗Sep 01, 2022 pm 05:25 PM

不包括。css选择器有:1、标签选择器,是通过HTML页面的元素名定位具体HTML元素;2、类选择器,是通过HTML元素的class属性的值定位具体HTML元素;3、ID选择器,是通过HTML元素的id属性的值定位具体HTML元素;4、通配符选择器“*”,可以指代所有类型的标签元素,包括自定义元素;5、属性选择器,是通过HTML元素已经存在属性名或属性值来定位具体HTML元素。

深度解析is与where选择器:提升CSS编程水平深度解析is与where选择器:提升CSS编程水平Sep 08, 2023 pm 08:22 PM

深度解析is与where选择器:提升CSS编程水平引言:在CSS编程过程中,选择器是必不可少的元素。它们允许我们根据特定的条件选择HTML文档中的元素并对其进行样式化。在这篇文章中,我们将深入探讨两个常用的选择器,即:is选择器和where选择器。通过了解它们的工作原理和使用场景,我们可以大大提升CSS编程的水平。一、is选择器is选择器是一个非常强大的选择

wxss选择器有哪些wxss选择器有哪些Sep 28, 2023 pm 04:27 PM

wxss选择器有元素选择器、类选择器、ID选择器、伪类选择器、子元素选择器、属性选择器、后代选择器和通配选择器等。详细介绍:1、元素选择器,使用元素名称作为选择器,选取匹配的元素,使用“view”选择器可以选取所有的“view”组件;2、类选择器,使用类名作为选择器,选取具有特定类名的元素,使用“.classname”选择器可以选取具有“.classname”类名的元素等等。

See all articles

熱AI工具

Undresser.AI Undress

Undresser.AI Undress

人工智慧驅動的應用程序,用於創建逼真的裸體照片

AI Clothes Remover

AI Clothes Remover

用於從照片中去除衣服的線上人工智慧工具。

Undress AI Tool

Undress AI Tool

免費脫衣圖片

Clothoff.io

Clothoff.io

AI脫衣器

AI Hentai Generator

AI Hentai Generator

免費產生 AI 無盡。

熱門文章

R.E.P.O.能量晶體解釋及其做什麼(黃色晶體)
2 週前By尊渡假赌尊渡假赌尊渡假赌
倉庫:如何復興隊友
4 週前By尊渡假赌尊渡假赌尊渡假赌
Hello Kitty Island冒險:如何獲得巨型種子
3 週前By尊渡假赌尊渡假赌尊渡假赌

熱工具

SublimeText3 Linux新版

SublimeText3 Linux新版

SublimeText3 Linux最新版

EditPlus 中文破解版

EditPlus 中文破解版

體積小,語法高亮,不支援程式碼提示功能

SublimeText3漢化版

SublimeText3漢化版

中文版,非常好用

記事本++7.3.1

記事本++7.3.1

好用且免費的程式碼編輯器

Dreamweaver Mac版

Dreamweaver Mac版

視覺化網頁開發工具