根据 SIMPLE HTML DOM PARSER 的文档(在“如何修改 HTML 元素”选项卡下),此代码找到
<div class="hello">
的第一个实例:
$html = str_get_html('<div class="hello">Hello</div><div class="world">World</div>');
$html->find('div[class=hello]', 0)->innertext = 'foo';
echo $html; // Output: <div class="hello">foo</div><div class="world">World</div>
如果我想将 'foo' 插入到 <div class="hello">
的
last实例中,假设 HTML 代码有很多
<div class="hello">
实例,该怎么办。
应该用什么来代替
0
?
好吧,自从
// Find all anchors, returns a array of element objects
$ret = $html->find('whatever');
返回一个
array
包含所有 <whatever>
元素,您可以使用 PHP 的常规数组函数获取最后一个元素,例如与 end
$last = end($ret);
如果SimpleHtmlDom完全实现了CSS3 Selectors进行查询,您还可以修改您的查询来使用
:last-of-type
仅查找返回节点列表中的最后一个同级。
来自手册:
// Find lastest anchor, returns element object or null if not found (zero based)
$ret = $html->find('a', -1);
lastChild 属性返回元素的最后一个子对象。
编辑: 显然不是 JQuery :) 请参阅 W3C 选择器参考:http://www.w3.org/TR/css3-selectors/#last-child-pseudo
最初的帖子问题是“应该用什么代替 0?”
答案:-1