Javascript: неэффективные замены вызывают проблемы

#javascript

#javascript

Вопрос:

у меня есть этот простой код, который заменяет первый интервал на div ,

вот ЖИВЫЕ примеры :

  1. исходная рабочая версия: http://jsfiddle.net/SNmLJ/5 /
  2. тот, который с изменениями: http://jsfiddle.net/SNmLJ/6 /

 var pn = "parentNode" , rc = "replaceChild";
var elem = document.getElementsByTagName('span')[0];
var newE = document.createElement('div');

newE.innerHTML = 'test';
elem[pn][rc](newE , elem);
 

код отлично работает, поэтому я попытался немного сократить код, поэтому я сделал это :

 var pn = "parentNode" , rc = "replaceChild";
var newE = document.createElement('div');

newE.innerHTML = 'test';
document.getElementsByTagName('span')[0][pn][rc](newE , elem);
 

как вы видите, я убрал переменную «elem» и заменил значение в нижней части кода,
я не знаю, почему это не работает, но я предполагаю, что проблема связана с причиной объекта «document» в первой строке.

  • единственный вопрос: почему он не работает должным образом, что здесь пошло не так?

Ответ №1:

Проблема в том, что вы забыли, что elem переменная использовалась также в последнем параметре, переданном replaceChild функции. Вот элемент в конце, но вы удалили определение:

document.getElementsByTagName('span')[0][pn][rc](newE , elem );

Ответ №2:

Что elem в нерабочем коде?

(Подсказка: ничего 😉