Jquery не препятствует нормальной работе vanilla Javascript.
А так как ваш код - просто Javascript, и, судя по всему, в нем нет ошибок, трудно понять, почему такая ошибка возникает.Это не имеет ничего общего с Jquery.
Единственная предсказуемая ошибка:
pageName не передается в качестве аргумента;
pageName передается, но не является строкой; в вашем документе не существует элемента с идентификатором, равным значению
pageName .
Вы можетенемного улучшите свой код, написав его следующим образом:
function openPage(pageName) {
Array.from(document.getElementsByClassName('page')).map(page => page.style.display = 'none');
document.getElementById(pageName).style.display = "block";
};
Вы можете сделать его «более защищенным», добавив несколько проверок:
function openPage(pageName) {
if (pageName && (typeOf pageName === 'string')) {
Array.from(document.getElementsByClassName('page')).map(page => page.style.display = 'none');
var target = document.getElementById(pageName);
if (target) { target.style.display = "block" };
}
};
И вы можете улучшить его, также войдя в системуна консоль, если проверка не удалась, для отладки:
function openPage(pageName) {
if (pageName && (typeOf pageName === 'string')) {
Array.from(document.getElementsByClassName('page')).map(page => page.style.display = 'none');
var target = document.getElementById(pageName);
if (target) {
target.style.display = "block"
} else {
console.log('No element found, with the ID of:' , pageName)
};
} else {
console.log('Error in openPage() : The provided [pagename] argument must be a [string]. Provided value for [pageName] is:', pageName);
}
};