Не изменяется innerHTML 
		
		
		
		
// data - раскодированый JSON
// data[0] - 'html>body'
// data[1] - 'innerHTML'
// data[2] - 'Hello World!'
var node_value = document.querySelector(data[0])[data[1]]; //переменная почему-то становится строкой а не обьектом :(
if(node_value !== undefined) {
      node_value = data[2];
 }
else {
      alert('Bad response. Please, reload the page.');
 }
 | 
	
		
 Попробуйте так: 
	
var node=document.querySelector(data[0]);
if(!node)
    alert('Not found');
else
    node[data[1]]=data[2];
 | 
	
		
 Спасибо. Заработало! 
	 | 
	
		
 И еще одно. querySelector возвращает елемент по css селектору. А как сделать обратное действие? Т.е. вернуть селектор елемента. 
	 | 
	
		
 Ppezrk, 
	У элемента нет какого-то определенного селектора. По каким признакам его искать - определяется в конкретных случаях. У элемента же есть название тега, есть (может быть) идентификатор id, список классов classList и другие атрибуты и свойства, набор из которых можно задавать для поиска в querySelector, и которые можно посмотреть для уже найденного тем или иным образом элемента. 
<html>
  <body>
  </body>
<script>
var data = ['html>body','innerHTML','Hello World!'];
var node=document.querySelector(data[0]);
if(!node)
    alert('Not found');
else {
    node[data[1]]=data[2];
    alert(node.nodeName);
}
</script>
</html>
 | 
| Часовой пояс GMT +3, время: 07:36. |