11.2筆記
1、js、jQuery區別:1、本質區別:a、js是網頁尾本語言,類似java是一種開發常用語言;
jQuery是基於js語言封裝出來的一個前端框架;所以最本質的區別就是js是一種語言,而jQuery是基於該語言的一種框架。
2、用法區別:a、外觀上jQuery物件比js物件多了"$()"
b、操作屬性的方法不同
c、操作樣式時方法不同
d、使用JavaScript和jQuery分別載入DOM時。JavaScript只會執行一次,而jQuery會執行多次
e、js獲取id:document.getElementById(‘idName');JQuery:$('#idName')
f、js獲取class的方法:document.getElementsByClassName;JQuery:$('.className')。
2、js常用選擇器:a:getElementById(ID): 返回對指定ID的第一個物件的引用,如果在文件中查詢一個特定的元素,最有效的方法是getElementById()。
b:etElementsByName(name): 返回文件中name屬性為name值的元素,因為name屬性值不是唯一的,所以查詢到的結果有可能返回的是一個數組,而不是一個元素。
c:getElementsByTagName(tagname): 返回文件中指定標籤的元素。
d:getElementsByClassName():返回文件中所有指定類名的元素。
e:getElementsByClassName():返回文件中所有指定類名的元素。
f:querySelectorAll():返回文件中匹配指定css選擇器的第一個元素。
3、jQuery選擇器:a:基本選擇器:
ID選擇器:$(“#myId”)選擇ID值等於myId的元素,id值不能重複在文件中,只能有一個id值是myId,所以得到的是唯一的元素。
標籤選擇器:$("div”)選擇所有的div標籤元素,返回div元素節點的陣列。
class選擇器:$(".myClass")選擇文件中所有使用myClass樣式的元素。
$("*”)選擇文件中的所有的元素,可以運用多種的選擇方式進行聯合選擇:例如$("#myId,div,.myclass")
b:層級選擇器:
$("form input"):選擇所有的form元素中的input元素。
$"#main>*"):選擇id值為main的所有的子元素。
$("label + input"):選擇所有的1abe1元素的下一個input元素節點,經測試選擇晶返回的是label標籤後面直接跟一個input標籤的所有input標籤元素
$("#prev~div"):同胞選擇器,該選擇器返回的為id為prev的標籤元素的所有的屬於同一個父元素的div標籤。
c:基本過濾選擇器(基本篩選器):
$("tr:first"):選擇所有tr元素的第一個。
$("tr:last"):選擇所有tr元素的最後一個。
$("input:not(:checked)+span"):過濾掉:checked的選擇器的所有的input元素。
$("tr:even"):選擇所有的tr元素的第0,2,4......個元素(注意:因為所選擇的多個元素時為陣列,所以序號是從0開始)。
$("tr:odd"):選擇所有的tr元素的第1,3,5......個元素。
$("td:eq(2)”):選擇所有的td元素中序號為2的那個td元素。
$("td:gt(4)"):選擇td元素中序號大於4的所有td元素。
$("td:lt(4)"):選擇td元素中序號小於4的所有的td元素。
$(":header"):選擇所有的h1....h6元素。
$("div:animated"):選擇正在執行動畫的<div>元素。
d、內容過濾選擇器:
$("div:contains('John')"):選擇所有div中含有John文字的元素。
$("td:empty"):選擇所有的為空(也不包括文字節點)的td元素的陣列。
$("div:has(p)"):選擇所有含有p標籤的div元素。
$("td:parent"):選擇所有的以td為父節點的元素陣列。
e、視覺化過濾選擇器(可見性選擇器):
$("div:hidden"):選擇所有的被hidden的div元素。
$("div:visible"):選擇所有的視覺化的div元素。
f、屬性過濾選擇器:
$("div[id]"):選擇所有含有id屬性的div元素。
$("input[name='newsletter']"):選擇所有的name屬性等於newsletter的input元素。
$("input[name!-'newsletter']"):選擇所有的name屬性不等於'newsletter'的input元素。
$("input[name^='news']"):選擇所有的name屬性以'news'開頭的input元素。
$("input[name$='news']"):選擇所有的name屬性以'news'結尾的input元素。
$("input[name*='man']"):選擇所有的name屬性包含'news'的input元素。
$("input[id][name$='man']"):可以使用多個屬性進行聯合選擇,該選擇器是得到所有的含有id屬性並且那麼屬性以man結尾的元素。
g、子元素過濾選擇器:
$("div span:first-child"):返回所有的div元素的第一個子節點的陣列。
$("div span:last-child"):返回所有的div元素的最後一個節點的陣列。
$("div button:only—child"):返回所有的div中只有唯—個子節點的所有子節點的陣列。
h、表單元素選擇器:
$(":text"):選擇所有的text input元素。
$(":password"):選擇所有的password input元素。
$(":radio”):選擇所有的radio input元素。
$(":checkbox"):選擇所有的checkbox input元素。
$(":submit"):選擇所有的submit input元素。
$(":image"):選擇所有的image input元素。
$(":reset"):選擇所有的reset input元素。
$(":button"):選擇所有的button input元素。
$(":file"):選擇所有的file input元素。
$(":hidden"):選擇所有型別為hidden的input元素或表單的隱藏域。
i、表單元素過濾選擇器:
$(":enabled"):選擇所有的可操作的表單元素。
$(":disabled"):選擇所有的不可操作的表單元素。
$(":checked"):選擇所有的被checked的表單元素。
$("select option:selected"):選擇所有的select 的子元素中被selected的元素。
j、其他選擇器:
$("A B”)查詢A元素下面的所有子節點,包括非直接子節點。
$(“A>B”)查詢A元素下面的直接B子節點。
$(“A+B”)查詢A元素後面的兄弟節點,包括非直接子節點。
$(“A~B”)查詢A元素後面的兄弟節點,不包括非直接子節點。
next();//當前元素之後的緊鄰著的第一個兄弟元素(下一個)。
nextA11();//當前元素之後的所有兄弟元素。
prev();//當前元素之前的緊鄰著的兄弟元素(上一個)。
prevA11();//當前元素之前的所有兄弟元素。
siblings();//當前元素的所有兄弟元素。
不僅可以使用選擇晶進行進行絕對定位,還可以進行相對定位,只要在$()指定第二個引數,第二個引數為相對的元素。例如:$(“u1”,$(“div”)).
css(“background”,“red”);表示選擇在所有div元素節點下的u1元素。
4、js和jQuery物件之間的轉換:
a、js物件轉換成jquery物件。 $(js物件);
b、jquery物件轉換成js物件。 (1)jquery物件[索引值] (2)jquery物件.get(索引值).
例:首先定義一個JQuery與js物件。var jq = $("#btn");因為jQuery是js的方法集合 可以將jQuery當成偽陣列 運用陣列特點將之轉換。
jQuery --> js:(1). var js = jq[0];或者使用get方法將之轉換:(2).var js = jq.get(0)。
js --> jQuery:最簡單的方法,運用$將js物件轉換 簡單粗暴:var jq = $(js);