Ошибка JavaScript RunTime: appendChild () - неожиданный вызов метода или свойства в IE8 - PullRequest
0 голосов
/ 04 января 2012

Я получаю ошибку JS во время выполнения, например: «Неожиданный вызов метода или свойства». Вот код:

    var comboInput = document.getElementById("Combo");
    var option1 = document.createElement("option");
    option1.value = "-1";
    option1.innerHTML = "--Select--";
    comboInput.appendChild(option1); //At this line debugger breaks and
                                     // throws the above error

Я рассмотрел некоторые похожие вопросы на SO по этой проблеме, но все еще не нашел решения.

Пожалуйста, помогите .. Спасибо в Adv ...

Ответы [ 2 ]

1 голос
/ 04 января 2012

Вы не можете добавлять дочерние элементы к <input> элементам.

<option> элементы могут быть только дочерними элементами <select> элементов, где <select> элементы являются версией html раскрывающегося списка (или список множественного выбора в зависимости от заданных вами атрибутов).

Попробуйте изменить html так, чтобы ваш элемент "Combo" был таким:

<select id="Combo"></select>

, и тогда ваш код должен работать.

Обратите внимание, что вы можете устанавливать параметры непосредственно в разметке html, например,

<select id="Combo">
    <option value="-1">--Select--</option>
    <option value="1">Green</option>
    <option value="2">Purple</option>
</select>

(И, добавив параметры в ваш html, вы можете добавлять дополнительные параметры и / или удалять параметры через JS.)

1 голос
/ 04 января 2012

Вам необходимо проверить значение comboInput (выведите его значение с помощью console.log() или alert(), чтобы увидеть, на что оно установлено).

Вероятно, он имеет значение null, поскольку ваш код не нашел существующий объект с id="Combo". Это может быть потому, что:

  1. Такой объект не существует на вашей странице
  2. Вы не получили правильный идентификатор
  3. Этот код выполняется до загрузки страницы, поэтому объект еще не загружен / не создан.

Если вы включите весь контекст страницы (весь HTML и весь JS или ссылку на действующую страницу), мы могли бы вам более конкретно указать, какие шаги следует предпринять для устранения проблемы.

...