У меня есть некоторый JavaScript, который выглядит так:
var sel = '<option value="{value}" {selected}>{name}</option>';
...
$(index + '_expiry').innerHTML = sel; // $(index + '_expiry) is a select.
Это прекрасно работает в Firefox, но не в Internet Explorer - даже в IE9.
Уже существует решение этой проблемы , которое включает создание новых элементов в DOM, а не изменение innerHTML.
Неправильно ли вставлять новые элементы на страницу, манипулируя .innerHTML
? Я использую подход innerHTML
по всему сайту, и это легко. Он работает в IE для простых элементов, таких как .div
.
Хотя IE
часто раздражает в работе, более новые версии имеют более строгий синтаксический анализатор javascript, который, вероятно, более корректен - например, ему не нравится массив, созданный как ['a','b','c',]
.
Итак, это плохо, неэффективно, ненадежно или похоже на использование .innerHTML
для создания новых элементов HTML в DOM? Должен ли я использовать его только для вставки простого текста? Или это просто IE Бениг упрямый?