1、基本過濾選擇器
此項選擇器搭配基本選擇器可以講佔到實際選擇器應用的90%以上(可由document.getElementById及節點nodeChilds得知)
:first//(選取第一個元素)
:last//(選取最後一個元素)
:even//(選取索引是偶數的所有元素)
:odd//(選取索引是奇數的所有元素)
:eq(index)//(選取索引等於index的元素)
:gt(index)//(選取索引大於index的元素)
:lt(index)//(選取索引小於index的元素)
:header//(選取所有的h1,h2,h3等標題元素)
:animated//(選取當前正在執行動畫的所有元素)
2、內容過濾選擇器
:contains(text)//選取含有文本內容爲text的元素
:empty//選取不包含子元素或者文本的空元素
:has(selector)//選取含有選擇器所有匹配的元素的元素
:parent//選取含有子元素或者文本的元素
3、可見性過濾選擇器
對於<input type="hidden"?/>不要考慮對其應用任何css屬性。That's no way。
:hidden//選取所有不可見的元素(包括<input type="hidden" />、<div style="display:none">和<div style="visibility:hidden;">;若只選取<input type="hidden" />使用$("input:hidden")
:visible//選取所有可見元素
4、屬性選擇過濾器
在ie6中對css的屬性過濾選擇器不起作用,而jQuery的屬性選擇過濾器經測試後在ie6中有效。(6.0之前不起作用)想要了解^ $ *可參考相關正則表達式資料。
[attribute]//選取擁有此屬性的元素
[attribute=value]//選取屬性的值爲value的元素
[attribute!=value]//選取屬性的值不爲value的元素
[attribute^=value]//選取屬性的值以value開始的元素
[attribute$=value]//選取屬性的值以value結束的元素
[attribute*=value]//選取屬性的含有value的元素
[selector1][selector2][selectorN]//屬性選擇器合併成一個複合屬性選擇器,注意此處爲屬性選擇器的並集,如$("div[id][class$='Bar']"
5、子元素選擇過濾器
同上面的屬性選擇器一樣,原先的css規則對ie6不起作用,經過jQuery可以選定該類元素。
:nth-child(index/even/odd/equation)//選取第index個子元素或者奇偶元素
:first-child//選取每個父元素的第一個元素(返回整個文檔中每個元素的第一個子元素),如$("ul li:first-child");選擇每個<ul>中第1個元素
:last-child//選取每個父元素的最後一個元素
:only-child//若某子元素是其父元素中惟一的子元素,將會被匹配
6、表單對象屬性過濾選擇器
:enabled//選擇所有可用元素,例$("#form1:enabled")
:disabled//選取所有不可用元素
:checked//選取所有被選中元素(checkbox,radio)
:selected//選取所有被選中元素(下拉列表)
7、表單選擇器
:input
:text
:password
:radio
:checkbox
:submit
:image
:reset
:button
:file
:hidden
使用jQuery操作DOM
DOM(Document Object Model)文檔對象模型,是一種與瀏覽器、平臺、語言無關的接口,使用該接口可以輕鬆地訪問頁面中所有的標準組件。
DOM操作分爲三個方面:DOM Core(核心)、HTML-DOM和CSS-DOM
1) DOM Core:常使用getElementByID(),getElementsByTagName(),getAttribute()和setAttribute()
2) HTML-DOM:如document.forms,element.src
3) CSS-DOM:如element.style.color="#f00"
查找節點 1、查找元素節點:使用jQuery選擇器器,例$("ul li:eq(0)").text()獲取<ul>中第1個<li>節點內的文本內容; 2、查找屬性節點:使用attr()方法獲取節點屬性值。當attr()方法參數爲一個時得到屬性值,例$("a:eq(0)").attr("href")獲取第一個<a>的href屬性;
創建節點
1、創建元素節點:包括兩個步驟,一是創建新元素,二是將新元素插入到文檔中(父元素之中);
2 |
var $p=$("< p ></ p >");//不可使用$("< p >")或$("< P >"),可使用$("< p />") |
2、創建文本節點
2 |
var $p=$("< p >一段文字</ p >"); |
3、創建屬性節點(與創建文本節點類似)
插入節點
append()//向每個匹配的元素內部追加內容
appendTo()//將所匹配的元素追加到指定的元素中;$(a).appendTo(b)將a追加到b中
prepend()//向每個匹配的元素內部前置內容,如$("p").prepend("<b>您好</b>");產生<p><b>您好<b>Walkingp</p>
prependTo()//將所匹配的元素前置到指定的元素中。如$("<b>您好</b>").prependTo("p");
after()//在每個匹配的元素之後插入內容,如$("p").prepend("<b>您好</b>");產生<p>Walkingp</p><b>您好</b>
insertAfter()//將所有匹配元素插入到指定元素的後面,如$("<b>您好</b>").insertAfter("<p>");
before()//在所匹配的元素之前插入內容,如$("p").before("<b>您好</b>")產生:<b>您好</b><p>walkingp</p>
insertBefore()//將所匹配的元素插入到指定的元素的前面,如$("<b>您好</b>").insertBefore("p")
刪除節點
1、remove()方法//從DOM中刪除所匹配的元素,如$("ul li:eq(1)").remove();//刪除第2個<li>元素節點,值得注意的是,此方法應該對應js對象方法中的 removeChild,removeChild方法移除節點並未真正釋放,可以重新引用此節點。
01 |
< script type = "text/javascript" > |
02 |
document.onreadystatechange=function(){ |
03 |
var ul=document.getElementsByTagName("ul")[0]; |
04 |
var li=ul.removeChild(ul.childNodes[0]); |
05 |
for(i=0;i< ul.childNodes.length ;i++) |
07 |
ul.removeChild(ul.childNodes[i]); |
13 |
var $li=$("ul li:eq(0)").remove(); |
查看示例
2、empty()方法:清空節點,注意此方法並不刪除節點,因此對於上面一個dom,使用如下代碼
2 |
var $li=$("ul li:eq(0)").empty(); |
生成效果
複製節點
clone()方法:克隆匹配的DOM元素並且選中這些克隆的副本
1 |
< script type = "text/javascript" > |
3 |
$("button").click(function(){ |
4 |
$(this).clone().insertAfter(this); |
8 |
< button >複製我♣</ button > |