Почему цепочка не работает в IE8 / 9 - PullRequest
0 голосов
/ 21 октября 2011

Почему это работает:

el = document.getElementById('STR');
if( el ){
    el.checked = true;
    el2 = el.cloneNode(false);
    el.parentNode.insertBefore(el2, el);
    el2.setAttribute('id','');
    el2.setAttribute('disabled','disabled');
    el2.removeAttribute('name');
    el.removeAttribute("disabled");
    el.style.display="none";
}

, но это не так:

el = document.getElementById('STR');
if( el ){
    el.checked = true;
    el2 = el.cloneNode(false);
    el.parentNode.insertBefore(el2, el);
    el2.setAttribute('id','');
    el2.setAttribute('disabled','disabled').removeAttribute('name');
    el.removeAttribute("disabled");
    el.style.display="none";
}

В Firefox / Chrome последний фрагмент работает отлично.

1 Ответ

2 голосов
/ 21 октября 2011

Это на самом деле не работает ни в одном браузере, о котором я знаю. Функция "setAttribute ()" DOM ​​возвращает undefined в Firefox и Chrome (и, возможно, также в IE).

Стиль "цепочки" кода - это то, что вы можете делать в JavaScript, если хотите, но для его явной реализации требуется какая-то структура. Методы DOM обычно не работают таким образом.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...