这个问题已经在这里有一个答案:
如何使下面的代码加载一次加载页面?
我试图使它成为一个全新的功能,但它没有工作,有人可以帮助我
document.getElementById("ano").addEventListener("change", function(a) {
const tbody = document.getElementById('tbody_calendario_jogos')
while (tbody.firstChild) {
console.log(tbody.firstChild)
tbody.removeChild(tbody.firstChild)
}
for (key in jogos) {
const anoSelect = new RegExp(`${a.target.value}`)
const data = anoSelect.exec(jogos[key].Data)
if (data != null) {
const obj = jogos[key]
const tr = document.createElement('tr')
const tdTemporada = document.createElement('td')
tdTemporada.textContent = obj.Temporada
const tdLocal = document.createElement('td')
tdLocal.textContent = obj.Local
const tdMais = document.createElement('td')
tdMais.textContent = obj.Mais
tr.appendChild(tdTemporada)
tr.appendChild(tdLocal)
tr.appendChild(tdMais)
tbody.appendChild(tr)
}
}
})
只要将你的函数事件监听器之外,它更改为名称的功能,以便您可以参考函数名和加载在页面加载的功能以及当change
监听器是由您#ano
元素像这样调用:
function someFunc(a) {
const tbody = document.getElementById('tbody_calendario_jogos')
while (tbody.firstChild) {
console.log(tbody.firstChild)
tbody.removeChild(tbody.firstChild)
}
for (key in jogos) {
const anoSelect = new RegExp(`${a.target.value}`)
const data = anoSelect.exec(jogos[key].Data)
if (data != null) {
const obj = jogos[key]
const tr = document.createElement('tr')
const tdTemporada = document.createElement('td')
tdTemporada.textContent = obj.Temporada
const tdLocal = document.createElement('td')
tdLocal.textContent = obj.Local
const tdMais = document.createElement('td')
tdMais.textContent = obj.Mais
tr.appendChild(tdTemporada)
tr.appendChild(tdLocal)
tr.appendChild(tdMais)
tbody.appendChild(tr)
}
}
}
someFunc(); // will load on page load
document.getElementById("ano").addEventListener("change", someFunc); // will load when `ano` element invokes the change listener
检查并运行下面的代码段用于上述方法的一个实际的例子:
function someFunc() {
alert("function loaded!!")
}
someFunc(); // will load on page load
document.getElementById("ano").addEventListener("click", someFunc); // will load when `ano` element invokes the change listener
<button id="ano">Click Me</button>
您可以使用一个简单的初始化语句在页面加载后执行的代码:
function init() {
//your code here
}
window.onload = init;
尝试把它自撤销功能,而不是改变功能。你改变函数内定义不管会不会被调用时,页面加载。根据你想何时何地被调用的代码,将其放置在页面的适当位置,如<head></head>
标签内,之后立即打开<body>
标签,或在结束</body>
标签的结束。
(函数(){//您的代码})();