如何使用 JavaScript 检索也在 JavaScript 中创建的 html 元素
How to use JavaScript to retrieve a html element that is also created in JavaScript
html 按钮是在 JavaScript 中创建的,每个按钮都有自己的 ID。它们在按下时激活相同的功能,我想知道按下了哪个按钮。我使用 this.id
查看按下的按钮的 ID。我想,因为我还没有检索到 JavaScript 中的按钮(例如 button = document.getElementById('button')
),所以它不起作用。我不知道如何使用在脚本中创建的 HTML 元素执行此操作。
var paragraph = document.getElementById('paragraph');
var cabins = [1,2,3];
for (var i = 0; i < cabins.length; i++) {
paragraph.innerHTML += "Cabin " + cabins[i] + "<br><br><button id='cabin" + cabins[i] +"' onclick='purchaseCabin()'>Purchase</button><br><br>"
}
function purchaseCabin() {
var cabinId = this.id;
console.log(cabinId);
}
<p id="paragraph"></p>
预期结果:按下按钮的ID写入控制台
实际结果:"undefined"写入控制台
this
inside the function refers to Window
没有 属性 id
,因此你得到 undefined
:
将 this
对象传递给函数,以便您可以在函数内部引用它:
var paragraph = document.getElementById('paragraph');
var cabins = [1,2,3];
for (var i = 0; i < cabins.length; i++) {
paragraph.innerHTML += "Cabin " + cabins[i] + "<br><br><button id='cabin" + cabins[i] +"' onclick='purchaseCabin(this)'>Purchase</button><br><br>"
}
function purchaseCabin(current) {
//console.log(this.constructor.name); // Window
var cabinId = current.id;
console.log(cabinId);
}
<p id="paragraph"></p>
html 按钮是在 JavaScript 中创建的,每个按钮都有自己的 ID。它们在按下时激活相同的功能,我想知道按下了哪个按钮。我使用 this.id
查看按下的按钮的 ID。我想,因为我还没有检索到 JavaScript 中的按钮(例如 button = document.getElementById('button')
),所以它不起作用。我不知道如何使用在脚本中创建的 HTML 元素执行此操作。
var paragraph = document.getElementById('paragraph');
var cabins = [1,2,3];
for (var i = 0; i < cabins.length; i++) {
paragraph.innerHTML += "Cabin " + cabins[i] + "<br><br><button id='cabin" + cabins[i] +"' onclick='purchaseCabin()'>Purchase</button><br><br>"
}
function purchaseCabin() {
var cabinId = this.id;
console.log(cabinId);
}
<p id="paragraph"></p>
预期结果:按下按钮的ID写入控制台
实际结果:"undefined"写入控制台
this
inside the function refers to Window
没有 属性 id
,因此你得到 undefined
:
将 this
对象传递给函数,以便您可以在函数内部引用它:
var paragraph = document.getElementById('paragraph');
var cabins = [1,2,3];
for (var i = 0; i < cabins.length; i++) {
paragraph.innerHTML += "Cabin " + cabins[i] + "<br><br><button id='cabin" + cabins[i] +"' onclick='purchaseCabin(this)'>Purchase</button><br><br>"
}
function purchaseCabin(current) {
//console.log(this.constructor.name); // Window
var cabinId = current.id;
console.log(cabinId);
}
<p id="paragraph"></p>