Javascript 用于显示/列出动态元素的jquery forEach函数

Javascript 用于显示/列出动态元素的jquery forEach函数,javascript,jquery,Javascript,Jquery,我已经创建了3个带有class属性的动态按钮,希望在单击其中一个按钮时列出它们。只显示一个,而不是全部三个 <script> var hyperlink; $(function() { var y = 2; for(var i = 0; i <= 2; i++ ) { drawRow( i, y ); } }); function drawRow( x, y ) { if(x == 0) row = $

我已经创建了3个带有class属性的动态按钮,希望在单击其中一个按钮时列出它们。只显示一个,而不是全部三个

<script>
var hyperlink;

$(function() {
    var y = 2;

    for(var i = 0; i <= 2; i++ ) {
         drawRow( i,  y );
    }
});

function drawRow( x, y ) {

    if(x == 0)
        row = $("<tr />")

    else {

        var btnName = "btn" + x;
        console.log("ln62 btnName: " + btnName);
        hyperlink = document.createElement("button");
        hyperlink.setAttribute('id', btnName);          
        hyperlink.setAttribute('class', 'btnCL');      //  class set for button
        hyperlink.innerHTML = x;

        $("#DataTable").append(row);
        row.append($("<td></td>").append(hyperlink));
        var btnName2 = "#btn" + x;
    }
}

$(document).on("click", '.btnCL', function() {

    console.log("inside doc.on ln73");
    //console.log("hyperlink: " + hyperlink.getAttribute("id"));
    $(hyperlink).each(function( i ) {
           console.log("ln76 " + i + ": " + hyperlink.getAttribute("id"));           
    });

});

</script>
结果: ln62 BTN名称:btn1 ln62 BTN名称:btn2 ln62 BTN名称:btn3

ln73内部文件 ln76 0:btn3//仅列出一个??s/b 3

任何帮助都将不胜感激。

这是因为hyperlink是一个变量而不是数组;将始终使用上次创建的按钮更新超链接变量

您可以使用事件对象并获取目标,而不是使用每个事件

var超链接; $function{ 变量y=2;
对于var i=0;i来说,主要问题是循环的每一次迭代都会向变量hyperlink重新分配一个新值

您真正需要做的就是在类集合上循环,而根本不需要全局变量

$(document).on("click", '.btnCL', function() {
   // current button is `this`
   console.log('Current id:', this.id);

   // loop over the class instead to see them all 
    $('.btnCL').each(function( i, el ) {
           console.log("ln76 " + i + ": " + el.id); // or this.id          
    });    
});
检查本教程:。我很想帮助您,但您的代码有很多错误。请放置一个工作代码。e.target.getAttributeid可以简化为this.id