jQuery 絕對入門第1/2頁
1.jQuery GO
jQuery 提供了功能強(qiáng)大的讀取和處理文檔DOM的方式,為動(dòng)態(tài)操作文檔DOM提供了方便。
$(document).ready(function() {
$("a").click(function() {
alert("Hello world!");
});
});
單擊文檔中任一個(gè)連接都會(huì)觸發(fā)alert() 事件
$號是 jQuery類的一個(gè)別稱,因此$()構(gòu)造了一個(gè)新的jQuery 對象。函數(shù) click() 是這個(gè)jQuery對象的一個(gè)方法,它綁定了一個(gè)單擊事件到所有選中的標(biāo)簽(這里是所有的a標(biāo)簽),并在事件觸發(fā)時(shí)執(zhí)行了它所提供的alert方法. 這樣的使用編碼更有結(jié)構(gòu)與行為分開的感覺。
2.選擇器和事件
jQuery提供兩種方式來選擇html的elements,第一種是用CSS和Xpath選擇器聯(lián)合起來形成一個(gè)字符串來傳送到j(luò)Query的構(gòu)造器(如:$("div > ul a"));第二種是用jQuery對象的幾個(gè)methods(方法)。這兩種方式還可以聯(lián)合起來混合使用
<ul id=”orderedlist”>
<li>食品</li>
<li>服裝</li>
<li>電子</li>
</ul>
使用jQuery 查找文檔中的ul如下:取代js document.getElementById(‘orderlist');
$(document).ready(function() {
$("#orderedlist").addClass("red");
});
$(“#..”)的方式可以找到指定ID的元素。
為其子節(jié)點(diǎn)添加樣式,如下:
$(document).ready(function() {
$("#orderedlist > li").addClass("blue");
});
在鼠標(biāo)移到或移開<li>項(xiàng)時(shí)樣式切換,如下:
$(document).ready(function() {
$("#orderedlist li:last").hover(function() {
$(this).addClass("green");
}, function() {
$(this).removeClass("green");
});
});
$(#orderedlist li) 與 $(“#orderedlist > li”) 的區(qū)別,前者是父元素下所有匹配的子元素,后都僅是其子元素中匹配的元素。
$(document).ready(function() {
$("#orderedlist").find("li").each(function(i) {
$(this).html( $(this).html() + " BAM! " + i );
});
});
find() 讓你在已經(jīng)選擇的element中作條件查找,因此 $("#orderedlist).find("li") 就像 $("#orderedlist li")一樣。each()方法迭代了所有的li,并可以在此基礎(chǔ)上作更多的處理。 大部分的方法,如addClass(), 都可以用它們自己的 each() 。在這個(gè)例子中, html()用來獲取每個(gè)li的html文本, 追加一些文字,并將之設(shè)置為li的html文本
一個(gè)ajax 方式提交后的重置表單的操作,如下:
$(document).ready(function() {
// use this to reset a single form
$("#reset").click(function() {
$("#form")[0].reset();
});
});
當(dāng)然可以重置個(gè)表單
$(document).ready(function() {
// use this to reset several forms at once
$("#reset").click(function() {
$("form").each(function() {
this.reset();
});
});
});
過濾選擇器
還有一個(gè)你可能要面對的問題是不希望某些特定的元素被選擇。jQuery 提供了filter() 和not() 方法來解決這個(gè)問題。 filter()以過濾表達(dá)式來減少不符合的被選擇項(xiàng), not()則用來取消所有符合過濾表達(dá)式的被選擇項(xiàng). 考慮一個(gè)無序的list,你想要選擇所有的沒有ul子元素的li元素。
$(document).ready(function() {
$("li").not("[ul]").css("border", "1px solid black");
});
上面代碼中的[expression] 語法是從XPath而來,可以在子元素和屬性(elements and attributes)上用作過濾器,比如你可能想選擇所有的帶有name屬性的鏈接:
$(document).ready(function() {
$("a[name]").background("#eee"); //原文為“$("a[@name]").background("#eee");”在jQuery1.2及以上版本中,@符號應(yīng)該去除
});
更常見的情況是以name來選擇鏈接,你可能需要選擇一個(gè)有特點(diǎn)href屬性的鏈接,這在不同的瀏覽器下對href的理解可能會(huì)不一致,所以我們的部分匹配("*=")[包含]的方式來代替完全匹配("="):
$(document).ready(function() {
$("a[href*=/content/gallery]").click(function() {
// do something with all links that point somewhere to /content/gallery
});
});
到現(xiàn)在為止,選擇器都用來選擇子元素或者是過濾元素。另外還有一種情況是選擇上一個(gè)或者下一個(gè)元素,比如一個(gè)FAQ的頁面,答案首先會(huì)隱藏,當(dāng)問題點(diǎn)擊時(shí),答案顯示出來,jQuery代碼如下:
$(document).ready(function() {
$('#faq').find('dd').hide().end().find('dt').click(function() {
var answer = $(this).next();
if (answer.is(':visible')) {
answer.slideUp();
} else {
answer.slideDown();
}
});
});
這里我們用了一些鏈?zhǔn)奖磉_(dá)法來減少代碼量,而且看上去更直觀更容易理解。像'#faq' 只選擇了一次,利用end()方法,第一次find()方法會(huì)結(jié)束(undone),所以我們可以接著在后面繼續(xù)find('dt'),而不需要再寫$('#faq').find('dt')。
相關(guān)文章
jQuery Deferred和Promise創(chuàng)建響應(yīng)式應(yīng)用程序詳細(xì)介紹
接下來我們一起探索一下JavaScript中的 Deferred 和 Promise 的概念Deferred 提供了一個(gè)抽象的非阻塞的解決方案(如Ajax 請求的響應(yīng)),它創(chuàng)建一個(gè)promise對象,其目的是在未來某個(gè)時(shí)間點(diǎn)返回一個(gè)響應(yīng),感興趣的可以參考下2013-03-03Raphael一個(gè)用于在網(wǎng)頁中繪制矢量圖形的Javascript庫
Raphael是一個(gè)用于在網(wǎng)頁中繪制矢量圖形的Javascript庫,它使用 SVG W3C 推薦標(biāo)準(zhǔn)和 VML 作為創(chuàng)建圖形的基礎(chǔ),你可以通過 JavaScript 操作 DOM 來輕松創(chuàng)建出各種復(fù)雜的柱狀圖、餅圖、曲線圖等各種圖表,接下來詳細(xì)介紹,感興趣的朋友可以了解下哦2013-01-01Jquery結(jié)合HTML5實(shí)現(xiàn)文件上傳
本文給大家介紹的是利用Jquery使用HTML5的FormData屬性實(shí)現(xiàn)對文件的上傳的方法和實(shí)例,非常的實(shí)用,有需要的小伙伴可以參考下。2015-06-06JavaScript 彈出子窗體并返回結(jié)果到父窗體的實(shí)現(xiàn)代碼
下面小編就為大家?guī)硪黄狫avaScript 彈出子窗體并返回結(jié)果到父窗體的實(shí)現(xiàn)代碼。小編覺得挺不錯(cuò)的,現(xiàn)在就分享給大家,也給大家做個(gè)參考。一起跟隨小編過來看看吧2016-05-05jQuery實(shí)現(xiàn)一個(gè)簡單的驗(yàn)證碼功能
今天給大家分享一個(gè)基于jquery實(shí)現(xiàn)的簡單驗(yàn)證碼功能,代碼簡單易懂,非常不錯(cuò),具有參考借鑒價(jià)值,需要的的朋友參考下吧2017-06-06jQuery實(shí)現(xiàn)兩款有動(dòng)畫功能的導(dǎo)航菜單代碼
這篇文章主要介紹了jQuery實(shí)現(xiàn)兩款有動(dòng)畫功能的導(dǎo)航菜單代碼,涉及jQuery動(dòng)畫效果的不同實(shí)現(xiàn)技巧,具有一定參考借鑒價(jià)值,需要的朋友可以參考下2015-09-09底部懸浮通欄可以關(guān)閉廣告位的實(shí)現(xiàn)方法
下面小編就為大家?guī)硪黄撞繎腋⊥诳梢躁P(guān)閉廣告位的實(shí)現(xiàn)方法。小編覺得挺不錯(cuò)的,現(xiàn)在就分享給大家,也給大家做個(gè)參考。一起跟隨小編過來看看吧2016-06-06