我在 Stack Overflow 上搜索了几个小时,看到了类似的问题,但所提供的解决方案都不是我正在寻找的,或者根本不起作用。
所以我试图仅使用 Javascript 来获取位于某个 div 下的按钮的 ID,而不是在 HTML 代码中使用任何 Javascript。
我的 HTML 代码如下所示:
<div id="constants" class="hidden">
<fieldset>
<legend>Gas</legend>
<div>
<div class="daily_charge">
<p>Daily charge: <span id="gasDaily"></span></p>
<button id="gasDaily_Edit">Edit</button>
</div>
<div class="rate_charge">
<p>Gas rate: <span id="gasRate"></span></p>
<button id="gasRate_Edit">Edit</button>
</div>
</div>
</fieldset>
<fieldset>
<legend>Elec</legend>
<div>
<div class="daily_charge">
<p>Daily charge: <span id="elecDaily"></span></p>
<button id="elecDaily_Edit">Edit</button>
</div>
<div class="rate_charge">
<p>Elec rate: <span id="elecRate"></span></p>
<button id="elecRate_Edit">Edit</button>
</div>
</div>
</fieldset>
<fieldset>
<legend>Water</legend>
<div>
<div class="daily_charge">
<p>Daily charge: <span id="waterInDaily"></span></p>
<button id="waterInDaily_Edit">Edit</button>
</div>
<div class="rate_charge">
<p>Water rate: <span id="waterInRate"></span></p>
<button id="waterInRate_Edit">Edit</button>
</div>
</div>
</fieldset>
</div>
我一直尝试使用但未成功的Javascript是:
var constantsDiv = document.getElementById("constants");
var constants_button = constantsDiv.getElementsByTagName("button");
var button_count = constants_button.length;
for (var i = 0; i <= button_count; i += 1) {
constants_button[i].onclick = function (e) {
alert(this.id);
};
};
首先,我不确定将其放入 for 循环中是否完全正确,但无论如何我都会收到“无法设置未定义或空引用的属性“onclick””。
有什么想法吗?
谢谢
最佳答案
您的 for()
语句将在最后一个元素中崩溃。更改删除条件中的 =
符号:
for (var i = 0; i < button_count; i += 1) {
===================^
关于Javascript - 如何获取单击的按钮的 ID,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/37462797/