2 回答
TA贡献1725条经验 获得超7个赞
看来您正在尝试将参数 station_id 作为参数发送到函数刷新METAR 中,以便在单击按钮时发送请求。您的代码中有两个问题。
<button onclick="refreshMETAR(this.innerHTML)">${station_id}</button>
我认为上面的语句中的这将引用窗口,而不是按钮元素或 stationIdCell 元素。const refreshMETAR = () => { const stationElement = this.innerHTML //The value of the table cell should be read here
您发送 (this.innerHtml) 作为 params ,但这不是在 param 中使用 a 的方法
请尝试这个:
stationIdCell.innerHTML = `<button onclick="refreshMETAR('${stationId}')">${station_id}</button>`
const refreshMETAR = (stationId) => {
const station = stationId
console.log(`entered: ${station}`)
TA贡献1848条经验 获得超2个赞
事件委托典型案例
第一部分:
// GLOBAL
const metarTableElement = document.querySelector('#metar_table')
document.addEventListener('click', refreshMETAR )
//...
let rowCount = metarTableElement.rows.length
if (rowCount > 6)
{
metarTableElement.deleteRow( --rowCount )
}
else
{
let row = metarTableElement.insertRow()
row.insertCell().innerHTML = `<button class="cl_METAR">${station_id}</button>`
row.insertCell().textContent = latitude
row.insertCell().textContent = longitude
row.insertCell().textContent = raw_metar
//...
点击按钮...
function refreshMETAR(evt)
{
if (!evt.target.matches('button.cl_METAR')) return // reject clicks from somewhere else
const station = evt.target.textContent // === value in ${station_id}
// ...
}
添加回答
举报