目前网上phpQuery的中文文档比较少,并且官方文档在谷歌上,特别整理了一些常用的phpQuery方法,供大家查阅以及新手学习。
以下资料均来自官方文档,官方文档地址:https://code.google.com/archive/p/phpquery/wikis
phpQuery::newDocumentFileXHTML('my-xhtml.html')->find('p'); $ul = pq('ul');
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属性匹配单个元素。
selector1, selector2, selectorN 根据所有制定的选择器匹配结合结果。
ancestor descendant 匹配由先祖指定的元素的后代指定的所有后代元素。
prev ~ siblings 匹配根据"prev" 元素的 所有相邻元素。
:first匹配第一个被选择的元素。
:animated 匹配正在进行动画效果的元素。
:contains(text) 匹配包含指定文本的元素。
[selector1selector2selectorN] 匹配给定属性并且包含确定值的元素。
:nth-child(index/even/odd/equation) 匹配所有是父元素的第n个的子元素,或者是父元素的偶数或者奇数子元素。
:only-child 匹配所有是父元素唯一子元素的子元素。
:input 匹配input, textarea, select和button元素。
:hidden 匹配所有类型为hidden的input元素或者其他hidden元素。
pq('a')->attr('href', 'newVal')->removeClass('className')->html('newHtml')->...
attr($name) 访问第一个给名称的元素的属性。这个方法可以很轻易地取得第一个匹配到的元素的属性值。如果这个元素没有对应名称的属性则返回undefined。
removeAttr($name) 对匹配到的元素移除给定名称的属性。
toggleClass($class) 对匹配到的元素,如果类不存在则添加,如果存在则移除。
以上是phpQuery的基本操作方法,大家有什么想要继续了解的请留言,我会抽空更新。