附加按钮仅适用于附加到的第一个div

时间:2019-02-15 03:34:34

标签: javascript jquery

我试图使每个按钮都起作用('avatar-container comment ng-scope'),以使其完全起作用。当前,只有最上面的按钮才是功能正常的按钮,我不确定为什么。这是我的代码:

此外,我已经尝试使用addEventListener,但是我仍然遇到相同的问题:(。

$(document).ready(function () {
var groupcomments = $('.group-comments') // Container "Group Comments" are in
$(groupcomments).ready(function () {
    function ucall(user) {
        window.open('derp.com/userid=' + user, 'popup', 'width=600', 'height=600')
    };
    if (groupcomments[0]) {
        var comments = groupcomments[0].getElementsByClassName('avatar-container comment ng-scope') // This gathers all of the comments themselves
        $.each(comments, function () { // (you know this) but, this is looping over each comment.
            var user = $(this).find('a')[0].href.toString(); 
            user = user.replace(/[^\d]/g, '')
            $(this).append('<button id=btnn>Click</button>') // using $(this) (which i assume are the comments, it appends the button to the comment)
            var btn = document.getElementById('btnn') // getting the button
            $(btn).click(function () {
                ucall(user) // when button is clicked, call ucall function. 
            })
        })
    }
})

})

我评论了所有有用的东西,添加的按钮起作用了,但是没有点击。仅在第一个附加。我只是被困在这里。

1 个答案:

答案 0 :(得分:0)

您正在循环内添加按钮camImg = (Bitmap) imgdata.getParcelableExtra("img"); 。这意味着您将添加多个具有相同ID的按钮。因此,当您致电<button id=btnn">Click</button>时,只会获得ID相同的按钮列表中的第一个匹配项。

只允许您使用一个具有ID的元素。 ID是唯一的。