前端學習--jQuery基礎

一:jQuery介紹

jQuery 是一個 JavaScript 函數庫

jQuery追求  "Write less,do more"

jQuery 極大地簡化了 JavaScript 編程

引包:把jQuery源文件放到項目中

<script src="jquery-1.11.1.min.js"></script>

入口函數:當DOM載入就緒時執行js代碼

<script type="text/javascript">
	入口函數方式一:
	$(function(){

	});
	方式二:
	$(document).ready(function(){

	});
</script>

jQuery兩個變量:$、jQuery;$是jQuery的一個別名,所以用它倆的效果是一樣的


二:jQuery核心

基礎語法是:$(selector).action()
美元符號$定義 jQuery;
選擇符(selector)“查詢”和“查找” HTML 元素;

jQuery 的 action() 執行對元素的操作;

length:jQuery 對象中元素的個數

selector:返回傳給jQuery()的原始選擇器

jQuery(html,[ownerDocument])

根據提供的原始 HTML 標記字符串,動態創建由 jQuery 對象包裝的 DOM 元素。同時設置一系列的屬性、事件等。

//動態創建div元素,並添加屬性與綁定事件
$("<div>", {
  "class": "test",
  text: "Click me!",
  click: function(){
    $(this).toggleClass("test");
  }
}).appendTo("body");
jQuery對象與原生DOM對象可以相互轉換:

如:jQuery對象[0]  = 原生DOM對象;$(domEle)  = jQuery對象

each(callback):以每一個匹配的元素作爲上下文來執行一個函數

$("button").click(function () { 
	$("div").each(function (index, domEle) { 
		// domEle == this;this指代的是DOM對象而非jQuery對象
		$(domEle).css("backgroundColor", "yellow");  
		if ($(this).is("#stop")) { 
			$("span").text("Stopped at div index #" + index); 
			return false; 
		};
	};
});
data([key],[value]):在元素上存放或讀取數據,返回jQuery對象


三:選擇器

jQuery可以使用CSS選擇器。

部分選擇器(除CSS選擇器):

:first獲取匹配的第一個元素:hidden匹配所有不可見元素
:last獲取匹配的最後一個元素:visible匹配可見元素
:first-child匹配作爲第一個子元素的元素:first-of-type其父元素的某個類型的第一個子元素
:last-child匹配作爲最後一個子元素的元素:last-of-type其父元素的某個類型的最後一個子元素
:not(selector)去除與給定選擇器匹配的元素:nth-of-type()其父元素的某個類型的第N個子元素
:even匹配索引值爲偶數的元素:nth-child(index)

匹配其父元素下的第N個子元素,

index從1開始

:odd匹配索引值爲奇數的元素:input匹配所有input、textarea、select、button元素
:eq(index)匹配給定索引值的元素:text 匹配單行文本框,即type="text"
:gt(index)匹配大於給定索引值的元素 :password匹配密碼框
:lt(index)匹配小於給定索引值的元素:radio匹配所有單選按鈕
:focus匹配當前獲取焦點的元素:checkbox匹配所有複選框
:contains(text)匹配包含此文本的元素:submit匹配所有提交按鈕
:empty匹配所有不包含子元素或者文本的空元素:image匹配所有圖像域
:has(selector)包含給定選擇器的元素:reset匹配所有重置按鈕
:selected匹配所有選中的option元素:checked

匹配所有選中的元素(複選框、單選框等,

select中的option)


四:方法小結

1,屬性方法

attr() :設置或返回被選元素的屬性值

$("#t1").attr("class","test");
$("#t1").attr({
    "class" : "test",
    "title" : "test"
  });
removeAttr(name) :刪除一個屬性
addClass():添加類屬性
removeClass():刪除類屬性
toggleClass():如果存在就刪除一個類,不存在則添加一個類
text():取得或設置匹配元素的內容
html():設置或返回所選元素的內容(包括 HTML 標記)

val():獲得或設置匹配元素的當前值


2,CSS方法

css():訪問或設置元素的樣式屬性
css("propertyname"); css("propertyname","value");

css({"propertyname":"value","propertyname":"value",...});

height():content高度
width()
innerHeight():content高度+padding
innerWidth()
outereHeight():content高度+padding+border
outerWidth()

3,文檔處理方法

append() - 向每個匹配的元素內部追加內容
appendTo() - 把所有匹配的元素追加到另一個指定的元素元素集合中
prepend() - 向每個匹配的元素內部前置內容
prependTo() - 把所有匹配的元素前置到另一個、指定的元素元素集合中
after() - 在被選元素之後插入內容

before() - 在被選元素之前插入內容

insertAfter():把匹配的元素插入另一個元素的後面
insertBefore():把匹配的元素插入另一個元素的前面
remove() - 刪除被選元素(及其子元素)
empty() - 從被選元素中刪除子元素

clone() 克隆匹配的DOM元素並且選中這些克隆的副本。 clone(true) :參數true指示事件處理函數會被複制

$("p").remove();	
$("p").remove(".hello");

4,遍歷(篩選)方法

parent() 返回被選元素的直接父元素
children() 返回被選元素的所有直接子元素
find() 返回被選元素的後代元素,一路向下直到最後一個後代
first() 方法返回被選元素的首個元素
last() 方法返回被選元素的最後一個元素

eq() 方法返回被選元素中帶有指定索引號的元素

siblings() 方法返回被選元素的所有同胞元素。
next() 方法返回被選元素的下一個同胞元素
nextAll() 方法返回被選元素的所有跟隨的同胞元素
nextUntil() 方法返回介於兩個給定參數之間的所有跟隨的同胞元素
prev() 返回被選元素的前一個同胞元素
prevAll()

prevUntil()

filter() 方法允許您規定一個標準;不匹配這個標準的元素會被從集合中刪除,匹配的元素會被返回
not() 方法返回不匹配標準的所有元素。
is(expr|obj|ele|fn):根據選擇器、DOM元素或 jQuery 對象來檢測匹配元素集合,如果其中至少有一個元素符合這個給定的表達式就返回true。

5,事件方法

on(events,[selector],[data],fn) :綁定事件處理函數

off(events,[selector],[fn]) :移除事件處理函數

mouseenter() 當鼠標指針穿過元素時觸發

mouseleave() 當鼠標指針離開元素時觸發

mouseover()  鼠標指針穿過被選元素或其子元素時觸發

mouseout()  鼠標指針離開被選元素還是其任何子元素時觸發

click()  點擊事件
dblclick()  雙擊事件
focus()  獲得焦點事件

blur()  失去焦點事件

$("p").click(function(){ 
  $(this).hide(); 
});
change():當元素的值發生改變時觸發

該事件僅適用於文本域(text field),以及 textarea 和 select 元素。當用於 select 元素時,change 事件會在選擇某個選項時發生。當用於 text field 或 text area 時,該事件會在元素失去焦點時發生。

input():在用戶輸入時觸發
該事件在 <input> 或 <textarea> 元素的值發生改變時觸發

hover():模仿懸停事件(鼠標移動到一個對象上面及移出這個對象)的方法

當鼠標移動到一個匹配的元素上面時,會觸發指定的第一個函數。當鼠標移出這個元素時,會觸發指定的第二個函數

$("td").hover(
  function () {
    $(this).addClass("hover");
  },
  function () {
    $(this).removeClass("hover");
  }
);
keydown():當鍵盤或按鈕被按下時觸發

keyup():當按鈕被鬆開時,發生 keyup 事件。它發生在當前獲得焦點的元素上

$(window).keydown(function(event){
  switch(event.keyCode) {
    // 不同的按鍵可以做不同的事情
    // 不同的瀏覽器的keycode不同
    // 更多詳細信息:     http://unixpapa.com/js/key.html
    // 常用keyCode: 空格 32   Enter 13   ESC 27
  }
});

6,動畫與效果方法

show():顯示隱藏的匹配元素
hide():隱藏元素
toggle():切換 hide() 和 show() 方法;顯示被隱藏的元素,並隱藏已顯示的元素
$(selector).hide(speed,callback);
$(selector).show(speed,callback);

可選的 speed 參數規定隱藏/顯示的速度,可以取以下值:"slow"、"fast" 或毫秒。

fadeIn() :用於淡入已隱藏的元素
fadeOut() :用於淡出可見元素
fadeToggle(): fadeIn() 與 fadeOut() 方法之間進行切換
fadeTo() :允許漸變爲給定的不透明度(值介於 0 與 1 之間)
$(selector).fadeIn(speed,callback);

$(selector).fadeTo(speed,opacity,callback);

slideDown():用於向下滑動元素
slideUp():用於向上滑動元素
slideToggle():在 slideDown() 與 slideUp() 方法之間進行切換

$(selector).slideDown(speed,callback);

animate() 方法用於創建自定義動畫
$(selector).animate({params},speed,callback);
必需的 params 參數定義形成動畫的 CSS 屬性
也可以定義相對值(該值相對於元素的當前值),需要在值的前面加上 += 或 -=;
甚至可以把屬性的動畫值設置爲 "show"、"hide" 或 "toggle"

注:如需對位置進行操作,要記得首先把元素的 CSS position 屬性設置爲 relative、fixed 或 absolute!

stop() 方法用於停止動畫或效果,在它們完成之前
$(selector).stop(stopAll,goToEnd);
可選的 stopAll 參數規定是否應該清除動畫隊列。默認是 false,即僅停止活動的動畫,允許任何排入隊列的動畫向後執行。

可選的 goToEnd 參數規定是否立即完成當前動畫。默認是 false。

由於 JavaScript 語句(指令)是逐一執行的 - 按照次序,動畫之後的語句可能會產生錯誤或頁面衝突,因爲動畫還沒有完成。
爲了避免這個情況,可以以參數的形式添加 Callback 函數
結論:如果希望在一個涉及動畫的函數之後來執行語句,請使用 callback 函數。


發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章