Я изучаю 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()"/>
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
//...
}
})();
Я не думаю, что вы прекрасно понимаете, как работает innerHTML
; это свойство вашего объекта:
document.getElementById('rowgen').innerHTML += '<p>Hello world</p>';
в вашей функции должно работать.
Я бы избегал встроенных атрибутов onclick
, но если вы должны их использовать, вам нужно подвергнуть свой метод глобальному window
:
window.genRow = function() {
// Code
};