javascript options.length = 0 не работает в IE9 - PullRequest
2 голосов
/ 22 августа 2011

У меня есть страница, которая устанавливает длину списка выбора в 0, прежде чем он добавляет новые опции. Это работало нормально во всех браузерах до IE9. В IE9 я получаю ошибку: DOM Exception: NOT_FOUND_ERR (8). Это все, что я пытаюсь сделать:

var typebox = document.sForm.ePosition;
typebox.options.length = 0;

Отлично работает в режиме совместимости.

Ответы [ 3 ]

3 голосов
/ 17 апреля 2012

Меня поразила та же проблема, и я нашел удобное решение для тех из нас, кто использует jQuery:

$(selectObject).empty();

Я проверял это в IE 7-9, FF 10.0 и Chrome 18, используя jQuery 1.4.4.

3 голосов
/ 22 августа 2011

Попробуйте выполнить каждую часть в вашей консоли и посмотрите, где находится ваше исключение:

document.sForm
document.sForm.ePosition
document.sForm.ePosition.options
document.sForm.ePosition.options.length

Я попытался установить длину параметров равной 0, и был довольно удивлен, что это сработало (в Chrome).Array.length должен быть только для чтения, по моему мнению.Я бы использовал DOM-код для удаления элементов, примерно так:

while (element.hasChildNodes()) {
    element.removeChild(element.firstChild);
}
1 голос
/ 21 ноября 2013

Вопрос был в чистом javascript, пожалуйста, предоставьте сначала чистый javascript ответ. Пользователи не могут быть заинтересованы в jquery, так как многие встроенные решения не могут использовать jquery.

...