示例
phpQuery::newDocumentFileXHTML('my-xhtml.html')->find('p'); $ul = pq('ul');
載入文檔
- phpQuery::newDocument($html, $contentType = null) 根據標記URL新建一個文檔。如果 $contentType為空,則根據文檔自動檢測編碼。檢測失敗, 則對於text/html類型文檔自動賦予utf-8編碼。
- phpQuery::newDocumentFile($file, $contentType = null) 根據文件新建一個文檔。類似於newDocument()
- phpQuery::newDocumentHTML($html, $charset = 'utf-8')
- phpQuery::newDocumentXHTML($html, $charset = 'utf-8')
- phpQuery::newDocumentXML($html, $charset = 'utf-8')
- phpQuery::newDocumentPHP($html, $contentType = null)
- phpQuery::newDocumentFileHTML($file, $charset = 'utf-8')
- phpQuery::newDocumentFileXHTML($file, $charset = 'utf-8')
- phpQuery::newDocumentFileXML($file, $charset = 'utf-8')
- phpQuery::newDocumentFilePHP($file, $contentType)
pq function
pq($param, $context = null);
pq(); 相當於 jQuery的$();。它主要完成三件事情:
1. 載入標記資源:
// 輸入到載入的文檔:
// 對於最開始輸入的字符串不接收文本類型的節點:pq('<div/>')
// 從$pq->getDocumentID()根據ID載入到文檔: pq('<div/>', $pq->getDocumentID())
// 根據DOM節點的歸屬將同樣的文檔載入:pq('<div/>', DOMNode)
// 從phpQuery 對象載入文檔: pq('<div/>', $pq)
2. 運行查詢
// 根據最后一個選擇的文檔執行查詢:pq('div.myClass')
// 根據$pq->getDocumentID()的ID從文檔中進行查詢:pq('div.myClass', $pq->getDocumentID())
// 在同樣的文檔上根據DOM節點的歸屬進行查詢並且使用節點作為查詢的根節點:pq('div.myClass', DOMNode)
// 在文檔上使用phpQuery對象進行查詢
// 同時使用對象的棧作為根節點進行查詢: pq('div.myClass', $pq)
3. 使用phpQuery對象對DOM節點進行原型化操作
foreach(pq('li') as $li) // $li是純DOM節點, 將它變為phpQuery對象: pq($li);
選擇器
選擇器是類似於jQuery接口的一個核心。大多數CSS3語法已經被采用(和jQuery保持同步)。
示例
pq(".class ul > li[rel='foo']:first:has(a)")->appendTo('.append-target-wrapper div')->...
基礎
-
#id 根據給定的ID屬性匹配單個元素。
- element 根據給定的名稱匹配所有符合的元素。
- .class 根據給定的class匹配所有的元素。
- * 選擇所有元素。
-
selector1, selector2, selectorN 根據所有制定的選擇器匹配結合結果。
層級
-
ancestor descendant 匹配由先祖指定的元素的后代指定的所有后代元素。
- parent > child 匹配由父元素指定的子元素指定的所有子元素。
- prev + next 根據指定的"next"和指定的"prev"匹配所有的下一個元素。
-
prev ~ siblings 匹配根據"prev" 元素的 所有相鄰元素。
基礎過濾
-
:first匹配第一個被選擇的元素。
- :last 匹配最后一個被選擇的元素。
- :not(selector) 匹配所有不是被選擇的元素。
- :even 匹配所有被選擇的偶數元素,0索引。
- :odd 匹配所有被選擇的奇數元素,0索引。
- :eq(index) 匹配等同於給定的索引的元素。
- :gt(index) 匹配大於給定的索引的元素。
- :lt(index) 匹配小於給定的索引的元素。
- :header 匹配所有header元素,如h1,h2,h3等。
-
:animated 匹配正在進行動畫效果的元素。
文本過濾
-
:contains(text) 匹配包含指定文本的元素。
- :empty 匹配所有無子節點的元素(包括文本節點)。
- :has(selector) 匹配至少包含一個對於給定選擇器的元素。
- :parent 匹配所有父元素 - 擁有子元素的,包括文本。
屬性過濾
- [attribute] 匹配給定屬性的元素。
- [attribute=value] 匹配給定屬性等於確定值的元素。
- [attribute!=value] 匹配給定屬性不等於確定值的元素。
- [attribute^=value] 匹配給定屬性是確定值開始的元素。
- [attribute$=value] 匹配給定屬性是確定值結尾的元素。
- [attribute*=value] 匹配給定屬性包含確定值的元素。
-
[selector1selector2selectorN] 匹配給定屬性並且包含確定值的元素。
子元素過濾
-
:nth-child(index/even/odd/equation) 匹配所有是父元素的第n個的子元素,或者是父元素的偶數或者奇數子元素。
- :first-child 匹配所有是父元素的第一個的子元素。
- :last-child 匹配所有是父元素的最后一個的子元素。
-
:only-child 匹配所有是父元素唯一子元素的子元素。
表單
-
:input 匹配input, textarea, select和button元素。
- :text 匹配所有類型為text的input元素。
- :password 匹配所有類型為password的input元素。
- :radio 匹配所有類型為radio的input元素。
- :checkbox 匹配所有類型為checkbox的input元素。
- :submit 匹配所有類型為submit的input元素。
- :image 匹配所有類型為image的input元素。
- :reset 匹配所有類型為reset的input元素。
- :button 匹配所有類型為button的input元素和button元素。
- :file 匹配所有類型為file的input元素。
-
:hidden 匹配所有類型為hidden的input元素或者其他hidden元素。
表單過濾
方法
示例
pq('a')->attr('href', 'newVal')->removeClass('className')->html('newHtml')->...
Attr
-
attr($name) 訪問第一個給名稱的元素的屬性。這個方法可以很輕易地取得第一個匹配到的元素的屬性值。如果這個元素沒有對應名稱的屬性則返回undefined。
- attr($properties) 對於所有匹配到的元素設置對應屬性。
- attr($key, $value) 對於匹配到的元素設置一個屬性和對應值。
- attr($key, $fn) 對於匹配到的元素設置一個屬性和需要計算的值。
-
removeAttr($name) 對匹配到的元素移除給定名稱的屬性。
Class
- hasClass($class) 如果有至少一個匹配到的元素包含給定的類則返回true。
- removeClass($class) 對匹配到的元素移除給定名稱的類。
-
toggleClass($class) 對匹配到的元素,如果類不存在則添加,如果存在則移除。