zoukankan      html  css  js  c++  java
  • 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('<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 匹配所有父元素 - 拥有子元素的,包括文本。

    属性过滤 

    子元素过滤 

    表单 

    • :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元素。

    表单过滤 

    • :enabled 匹配所有可用元素。

    • :disabled 匹配所有不可用元素。
    • :checked 匹配所有被勾选的元素。
    • :selected 匹配所有被选择的元素。

    方法

    示例

    pq('a')->attr('href', 'newVal')->removeClass('className')->html('newHtml')->...

    Attr

    • attr($name) 访问第一个给名称的元素的属性。这个方法可以很轻易地取得第一个匹配到的元素的属性值。如果这个元素没有对应名称的属性则返回undefined。

    • attr($properties) 对于所有匹配到的元素设置对应属性。
    • attr($key, $value) 对于匹配到的元素设置一个属性和对应值。
    • attr($key, $fn) 对于匹配到的元素设置一个属性和需要计算的值。
    • removeAttr($name) 对匹配到的元素移除给定名称的属性。

    Class

    HTML

    • html() 获取第一个匹配到的元素的html内容(innerHTML)。这个方法不适用于XML文本(但适用于XHTML。)

    • html($val) 对匹配到的元素设置html内容。这个方法不适用于XML文本(但适用于XHTML。)

    Text 

    • text() 获取匹配到的所有元素的文本内容。

    • text($val) 对匹配到的所有元素设置文本内容。

    Value 

    • val() 获取匹配到的第一个元素的value属性的值。

    • val($val) 对匹配到的元素设置value值。
    • val($val) 所有的Checks, selects, radio buttons, checkboxes,和select options都会设置相应给定的值。
  • 相关阅读:
    [leetcode] Best Time to Buy and Sell Stock II
    [leetcode] Best Time to Buy and Sell Stock
    [leetcode] Binary Tree Maximum Path Sum
    [leetcode] Triangle
    [leetcode] Populating Next Right Pointers in Each Node II
    [leetcode] Pascal's Triangle II
    [leetcode] Pascal's Triangle
    第三周周总结
    基础DP
    第二周周总结
  • 原文地址:https://www.cnblogs.com/songyanan/p/8488710.html
Copyright © 2011-2022 走看看