Ошибка JavaScript при попытке добавить внутренний HTML при нажатии кнопки

0

Я изучаю javascript, и в этом скрипте я пытаюсь вставить простую текстовую строку одним нажатием кнопки. Я попробовал два метода, и оба дают мне ошибку.

 <input type="button" value="getValue" id="getValue" />
 <div id="rowgen"></div>
(function(){
    window.onload = function() {

    // Code to display a google map on page
    //...

    document.getElementById("getValue").onclick = function(){
        document.getElementById.innerHTML('rowgen') += '<p>Hello world</p>';
  };

    }
})();

Я получаю сообщение об ошибке Uncaught ReferenceError: Invalid left-hand side in assignment для строки document.getElementById.innerHTML('rowgen') += '<p>Hello world</p>';

Для второго метода я попытался:

<input type="button" value="getValues" id="getValues" onclick="genRow()"/>
<div id="rowgen"></div>
(function(){
    window.onload = function() {

    // Code to display a google map on page
    //...

    function genRow(){
        document.getElementById.innerHTML('rowgen') += '<p>Hello world</p>';
    }

    }
})();

На этот раз я получаю сообщение об ошибке в файле HTML Uncaught ReferenceError: genRow is not defined в строке <input type="button" value="getValues" id="getValues" onclick="genRow()"/>

Теги:
javascript-events

2 ответа

1
Лучший ответ

genRow должен находиться вне вашего блока onload. Он еще не существует, когда вы его вызываете.

Кроме того, ваш вызов getElementById устанавливается ниже:

function genRow(){
    document.getElementById('rowgen').innerHTML += '<p>Hello world</p>';
}

(function(){
    window.onload = function() {

    // Code to display a google map on page
    //...

    }
})();
1

Я не думаю, что вы прекрасно понимаете, как работает innerHTML; это свойство вашего объекта:

document.getElementById('rowgen').innerHTML += '<p>Hello world</p>';

в вашей функции должно работать.

Я бы избегал встроенных атрибутов onclick, но если вы должны их использовать, вам нужно подвергнуть свой метод глобальному window:

window.genRow = function() {
    // Code
};

Ещё вопросы

Сообщество Overcoder
Наверх
Меню