我没有 phpQuery 的经验,但 jQuery 会是这样的:
var clubname = 'whatever';
var $match = $("td").map(function(index, domElement) {
return ($(domElement).text() === clubname) ? domElement : null;
});
phpQuery 文档表明->map() 可用,并且它接受回调函数的方式与在 jQuery 中相同。
我相信您将能够执行到 phpQuery 的翻译。
编辑
这是我基于 5 分钟阅读的尝试 - 可能是垃圾,但这里是:
$match = $dom->find("td")->map(function($index, $domElement) {
return (pq($domElement)->text() == $clubname) ? $domElement : null;
});
编辑 2
这是demo of the jQuery version。
如果 phpQuery 执行它在其 documentation 中所说的那样,那么(从 javascript 正确翻译)它应该以相同的方式匹配所需的元素。
编辑 3
在阅读了更多关于phpQuery callback system 的内容后,以下代码更有可能运行:
function textFilter($i, $el, $text) {
return (pq($el)->text() == $text) ? $el : null;
}};
$match = $dom->find("td")->map('textFilter', new CallbackParam, new CallbackParam, $clubname);
请注意,->map() 优于 ->filter(),因为 ->map() 支持更简单的方法来定义参数“位置”(请参阅参考页面中的示例 2)。