我没有 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
这是jQuery 版本的演示。
如果 phpQuery 按照其文档中所说的进行,那么(从 javascript 正确翻译)它应该以相同的方式匹配所需的元素。
编辑 3
在对phpQuery 回调系统进行了更多阅读之后,以下代码更有可能工作:
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)。