Не изменяется 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, время: 09:56. |