目前网上phpQuery的中文文档比较少,并且官方文档在谷歌上,特别整理了一些常用的phpQuery方法,供大家查阅以及新手学习。
以下资料均来自官方文档,官方文档地址:https://code.google.com/archive/p/phpquery/wikis
基础
示例
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("
")
// 从$pq->getDocumentID()根据ID载入到文档: pq("
", $pq->getDocumentID())
// 根据DOM节点的归属将同样的文档载入:pq("
", DOMNode)
// 从phpQuery 对象载入文档: pq("
", $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")->...
基础
层级
基础过滤
文本过滤
属性过滤
[selector1selector2selectorN] 匹配给定属性并且包含确定值的元素。
子元素过滤
表单
表单过滤
方法
示例
pq("a")->attr("href", "newVal")->removeClass("className")->html("newHtml")->...
Attr
($name) 访问第一个给名称的元素的属性。这个方法可以很轻易地取得第一个匹配到的元素的属性值。如果这个元素没有对应名称的属性则返回undefined。
($properties) 对于所有匹配到的元素设置对应属性。
($key, $value) 对于匹配到的元素设置一个属性和对应值。
($key, $fn) 对于匹配到的元素设置一个属性和需要计算的值。
($name) 对匹配到的元素移除给定名称的属性。
Class
($class) 对匹配到的元素添加一个给定的类。
($class) 如果有至少一个匹配到的元素包含给定的类则返回true。
($class) 对匹配到的元素,如果类不存在则添加,如果存在则移除。
HTML
() 获取第一个匹配到的元素的html内容(innerHTML)。这个方法不适用于XML文本(但适用于XHTML。)
($val) 对匹配到的元素设置html内容。这个方法不适用于XML文本(但适用于XHTML。)
Text
() 获取匹配到的所有元素的文本内容。
($val) 对匹配到的所有元素设置文本内容。
Value
() 获取匹配到的第一个元素的value属性的值。
($val) 对匹配到的元素设置value值。
($val) 所有的Checks, selects, radio buttons, checkboxes,和select options都会设置相应给定的值。
以上是phpQuery的基本操作方法,大家有什么想要继续了解的请留言,我会抽空更新。