自定义属性获取问题

我循环往一个节点里面添加内容,然后每个内容都添加了一个自定义的属性,我点击创建的节点的时候弹出自定义属性相对应的值,出现了问题都是 undefine,怎么回事呢

<body>
    <div class="aa"></div>
</body>
<script type="text/javascript">
for (var i = 0; i < 10; i++) {
    var currentCont = "<div sel=\"" + i + "\" style=\"width:100px;height:100px;background:yellow;\"></div>";

    $(".aa").append(currentCont);

}
$(".aa").on("click", function() {
    alert($(".aa").attr("aa"));
});
</script>
阅读 2.7k
2 个回答

题目要求是:每个内容都添加了一个自定义的属性,我点击创建的节点的时候弹出自定义属性相对应的值
那我就理解为获取新建节点的sel属性吧。

现在的写法有一定的问题,帮你优化一下代码。

var str = '';
for (var i = 0; i < 10; i++) {
    var currentCont = '<div sel="' + i + '" class="sel" style="width:100px;height:100px;background:yellow;"></div>';
    // 自加
    str += currentCont;
} 
// 只渲染一次
$('.aa').append(str);
$('.aa').on('click', '.sel', function() {
    alert($(this).attr('sel'));
})

aa 不是一个属性,class 才是,"aa"class 属性的值

alert($(".aa").attr("class"));
撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进
推荐问题