javascript - 获取动态生成的 ID

标签 javascript php jquery checkbox

我有一个复选框,其中的值是从数据库中的数据动态填充的。我想根据单击的复选框执行进一步的查询,但是每当单击任何复选框时,我似乎都无法检索 ID。我不想使用提交按钮。如何才能实现这一点?

我的代码。

function getDBlist() {
            global $link;
            $qry = ("SHOW DATABASES");
            $res = mysqli_query ( $link, $qry );
            while ( $row = mysqli_fetch_assoc ( $res ) ) {
                echo '<input type="checkbox" name="db" id="' . $row ['Database'] . '"   value="' . $row ['Database'] . '" />';
                echo $row ['Database'];
            }
        }
        getDBlist (); 

我的脚本

$(document).on("change","checkbox", function() {
    var val = $(this).val();
    var id = this.id;
    alert(val, id);
});

当我单击任何复选框时,我没有收到包含值或 ID 的警报。我在这里做错了什么?难道是因为我动态生成的ID?

最佳答案

要将更改事件绑定(bind)到动态生成的复选框,您需要委托(delegate) change 事件,如下所示

$(document).on("change",".checkbox", function() {
    var val = $(this).val();
    var id = this.id;
    alert(val, id);
});

上面的代码适用于现有的和动态创建的复选框。这里的 document 对象将把更改事件委托(delegate)给带有 class="checkbox"

的复选框

同样正如@Ghost提到的,您需要将类添加到动态生成的复选框,如下所示

echo '<input type="checkbox" 
             name="db" id="' . $row ['Database'] . '"   
             value="' . $row ['Database'] . '" 
             class="checkbox"/>';

<强> More Information for .on()

关于javascript - 获取动态生成的 ID,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/29208315/

相关文章:

javascript - 动态选项卡 - 加载多个子项 PER 选项卡

javascript - 具有多个参数的 Angular ng-if =""

javascript - file_get_contents() 在 php 中超时

javascript - 当我按下获取路由按钮时,我希望我的 javascript 变量存储在数据库中

javascript - 我们如何在给出对象适合 :contain property to the image tag? 后获得新的图像尺寸维度

javascript - 在 Javascript 中,Array.join 真的是 Array.prototype.join 吗?

php - 在 PHP 中查找 HTML "src"元素的 "img"属性的正则表达式

php - 工具提示不显示结果

javascript - jQuery 中的 resize() 高度不会改变

javascript - jquery 表单验证需要一组输入中的一个并且要求输入是一个整数