Вот такие же примеры:
<!DOCTYPE HTML>
<html>
<body>
<div id='abc'>
<span class="my"></span>
</div>
<script type='text/javascript'>
A=document.getElementById('abc');
B= A.querySelectorAll('span');
alert(B[0].className); // Наш спан будет найден как и надо
B= A.querySelectorAll('body span'); // Тут вроде не должен быть найдет, у дивки же нету тега body, но все равно найден, так как поиск все равно учитывает весь документ
alert(B[0].className);
// И так далее тоже все будет найдено
B= A.querySelectorAll('body div span');
B= A.querySelectorAll('div span');
B= A.querySelectorAll('#abc span');
</script>
</body>
</html>
Сообщение от PeaceCoder
|
и это логически не верно. я считаю это багом
|
Можно считать и багом, но может у такого подхода есть и плюсы, мы можем указывать поиск по всему документу, но найдены будут все равно только те которые являются потомками нашего элемента от которого мы ищем.
Но с другой стороны это нельзя считать багом, так как баг это ошибки допущенные разработчиками, а в данном случае это так и задумано