DOMQuery::is() returns wrong results
jakejackson1 opened this issue · 1 comments
jakejackson1 commented
From querypath created by Code-Working: technosophos/querypath#198
Hi,
I've just found a small bug while using the DOMQuery::is() method with a tag selector.
It seems as if the is() method does not check the matched element itself but all elements below the matched DOM query.
A simple code is this:
$document = html5qp('<a class="blubb" href="blabla"><span class="test"><img><div class="element">Text</div></span></a>');
var_dump($document->find('.element')->parent()->tag());
var_dump($document->find('.element')->parent()->first()->is('img'));
While looking at the code, you would expect a result like this:
string(4) "span"
bool(false)
But, the real result is this:
string(5) "span"
bool(true)
If you remove the <img>
tag from the HTML code, it returns false, so this is why I'm guessing that the is() method is traversing through the DOM like the find() method.
Regards
Code-Working
jakejackson1 commented
As a consequence closest
which relies on is
is completely broken as well.