Uncaught ReferenceError: 'a' не определено в HTMLButtonElement.onclick (gallery. html: 1) - PullRequest
0 голосов
/ 17 июня 2020

Когда я создаю новый элемент div, я хочу, чтобы кнопка выполняла событие onClick, которое захватит переменную $ {Title}. Затем функция getTitle (Title) примет $ {Title} в качестве параметра и использует module.exports, чтобы я мог использовать эту переменную в другом javascript файле. (я использую module.exports через просмотр.)


function createDiv(Title){
    var div = document.createElement('div');
    div.setAttribute('class', `column-photo ${Type} show`);

    var newDiv =
        `
            <div class="content">
            <button class="content-text" id="Btn" onClick="getTitle(${Title})">
            </button>
            </div>
            `;

    div.innerHTML = newDiv;
    document.getElementById('someID').prepend(div);

}

function getTitle(Title){
    var imageTitle = Title.value;
    module.exports = imageTitle;
    console.log(imageTitle);
}

Однако проблема в том, что при нажатии кнопки возникает ошибка: ($ {Title} = 'a' and filename - галерея. html)

Uncaught ReferenceError: 'a' is not defined
    at HTMLButtonElement.onclick (gallery.html:1)

Другой файл javascript импортирует эту переменную. Однако console.log (imageTitle.imageTitle) не определен. Как это исправить?

var imageTitle = require('./file.js');
console.log(imageTitle.imageTitle);

1 Ответ

1 голос
/ 17 июня 2020

При создании элемента HTML вам необходимо правильно ввести параметр функции. Ошибка содержится в этой строке:

onClick="getTitle(${Title})"

если Title равно "a", то после построения строки она становится:

onClick="getTitle(a)"

, что вызывает эту ошибку, потому что a нигде не определено.

Чтобы исправить это, измените строку на эту:

onClick="getTitle('${Title}')"

, которая будет правильно разрешена на:

onClick="getTitle('a')"
...