Для университетского проекта я показываю вакансии в Лидсе, используя в основном JavaScript и JSON.Идея заключается в том, что неполный рабочий день JSON-файл отображается при загрузке страницы, затем пользователь может выбрать другую категорию заданий, а затем он загружает новый JSON-файл и заменяет HTML.
Я считаю, что мой код почтитам я попытался выяснить, как снова вызвать функцию, так как в моем предыдущем коде было много повторений.Однако вместо замены innerHTML
при выборе параметра он просто добавляет новое содержимое в конец HTML-кода предыдущего параметра.Я не могу понять, почему это?
Я пытался очистить идентификатор, прежде чем функция снова запустится, но это не работает.Возможно, я неправильно вызываю свои функции?
Любая помощь будет принята с благодарностью!
window.onload = function() {
var jobURL = "";
//Run function
loadJobs();
//If dropdown is changed
function change(){
var jobType = document.getElementById("jobtype");
var selectedValue = jobType.options[jobType.selectedIndex].value;
if (selectedValue == "part") {
var jobURL = "https://example.com/reed_parttime.php";
}
if (selectedValue == "temp") {
var jobURL = "https://example.com/reed_temp.php";
}
if (selectedValue == "graduate") {
var jobURL = "https://example.com/reed_graduate.php";
}
return jobURL;
}
document.getElementById("jobtype").onchange = change;
//Show jobs function
function loadJobs() {
document.getElementById("results").innerHTML = "";
var URL = change();
$.getJSON(URL, function(data) {
data.results.forEach(function(jobinfo) {
HTMLTemplate += `
<div class="row">
<a href="${jobinfo.jobUrl}" target="_blank">
<p>${jobinfo.jobTitle}</p>
<p>${jobinfo.employerName}</p>
<p>${jobinfo.jobDescription}</p>
</a>
</div>
`;
});
document.getElementById("results").innerHTML = HTMLTemplate;
});
}
//Repeat function again when button is clicked
document.getElementById("submitBtn").addEventListener("click", loadJobs);
}