Javascript - 如何获取单击的按钮的 ID

标签 javascript

我在 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/

相关文章:

javascript - 使用 if 语句 Webdriverjs 检测警报

javascript - 无法在 'pipeTo' : Illegal invocation 上执行 'ReadableStream'

javascript - React Native,Redux 找不到上下文

javascript - Supertest 中的负面断言

javascript - jquery/javascript - 达到最大附加数后自动删除附加元素

javascript - 像 facebook 一样只在通知 div 中滚动,而不是在 body 中滚动

javascript - Codility- PassingCars - 零性能

javascript - (使用 Javascript 对象进行实验)为什么我的函数在另一个函数中不起作用?

javascript - 我想在选择单选按钮时显示表格

javascript - 添加其上方的类,例如将类 "act"添加到 "<ul>"上方的 "li.item1"