единственный баг в querySelecor это то что делать запрос нужно от парента, если это не document. Тоесть:
<!doctype html>
<html>
<head>
</head>
<body>
<div id="mycontext">
<span></span>
</div>
<script type="text/javascript">
var div = document.getElementById( 'mycontext' );
var elems = div.querySelectorAll( div.nodeName + " span");
alert( [ elems[0], elems[0].nodeName ] );
</script>
</body>
</html>
Это такой некий своеобразный баг, который впринципе не сильно влияет на выборку.