Javascript获取动态设置的data-*属性

标签 javascript html

假设我有多个属于 game_join_a 类的元素,及其各自的data-tbl从数据库动态设置的属性。我想检索这些属性以便在我的代码中进一步使用它们。

我在下面使用的代码返回告诉我 a[i]未定义。

a = document.getElementsByClassName("game_join_a");
for(i = 0; i < a.length; i++){
    a[i].addEventListener("click", function(){
        console.log(a[i].getAttribute("data-tbl"));
    });
}

最佳答案

a = document.getElementsByClassName("game_join_a");
for(i = 0; i < a.length; i++){
    a[i].addEventListener("click", function(){
        console.log(this.getAttribute("data-tbl"));
    });
}

this 指的是单击事件绑定(bind)到的元素。如果您要动态添加元素而不仅仅是 data- 属性,您也可以尝试以下操作:

var a = document.getElementById('game_join_container'); // just something that contains all the elements that will be dynamically added

a.addEventListener('click', function (event) {
    // check to see if original element clicked is a "game_join_a" element first
    if(event.target.classList.contains('game_join_a')) {
        console.log(event.target.getAttribute('data-tbl'));
    }
});

关于Javascript获取动态设置的data-*属性,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/27992438/

相关文章:

javascript - 在父 div 类的一侧动态分组 html 元素

html - CSS 不在 Internet Explorer 中加载

javascript - javascript 的 unescape() 的 c# 等价物是什么?

javascript - 循环幻灯片和改变动画javascript

javascript - 如何根据位置获得到新年的时间?

html - 如何仅向离开图像的文本添加不透明度,而在同一元素中没有任何不透明度?

html - CSS3 过渡在 Firefox 中不起作用

javascript - 加入三个变量,然后用正则表达式提取

javascript - 使用 Javascript 获取元标题和描述

javascript - 静态 Html 网站 - Bootstrap - 多语言支持