Javascript (event.Target==document.getElementById(";id";)返回false,即使它们指向同一个元素

Javascript (event.Target==document.getElementById(";id";)返回false,即使它们指向同一个元素,javascript,html,Javascript,Html,伙计们!第一次来这里,感谢您提前阅读 我已经动态生成了一些元素,并使用事件绑定向它们添加事件,如下所示 for(var i = 0, length = list.length || 0; i < length; i++){ str += "<li class = 'mb-2' data-reply_id ='" + list[i].reply_id + "'>"; str += "<div><div class = 'width100 repl

伙计们!第一次来这里,感谢您提前阅读

我已经动态生成了一些元素,并使用事件绑定向它们添加事件,如下所示

for(var i = 0, length = list.length || 0; i < length; i++){
    str += "<li class = 'mb-2' data-reply_id ='" + list[i].reply_id + "'>";
    str += "<div><div class = 'width100 reply_info'><span><strong>" + list[i].replyer +"</strong></span>";
    str += "<span><small>" + replyService.formatDate(list[i].reply_date) + "</small></span>";
    str += "<button class = 'basic_btn btn btn-primary' id = 'reply_modify'>modify</button><button class = 'basic_btn btn btn-primary' id = 'reply_delete'>delete</button></div>";
    str += "<div class='comment-content comment col-md-10 col-sm-9 col-12 width100'><p class = 'fn'>";
    str += list[i].reply + "</p></div></div></li>";
}
replyUL.html(str);

$("#comments").on("click", "li", function(e){
    var reply_idValue = $(this).data("reply_id");

    console.log(reply_idValue);
    console.log(e.target);    
    console.log(typeof(e.target));
    console.log("");
    console.log(document.getElementById("reply_delete"));
    console.log(typeof(document.getElementById("reply_delete")));   

    if(e.target === document.getElementById("reply_delete")){
        console.log("worked!");
        if(confirm("Are you sure?")){
            replyService.remove(reply_idValue, function(result){
            alert(result);
            showList(1);
            })
        }else{
            console.log("not working!");
    }
for(var i=0,length=list.length | | 0;i”;
str+=“”+list[i]。replyer+“”;
str++=“replyService.formatDate(列表[i].reply_date)+”;
str+=“修改删除”;
str+=“

”; str+=list[i]。回复+“

”; } replyUL.html(str); $(“#注释”)。在(“单击”、“li”,功能(e){ var reply_id value=$(this).data(“reply_id”); console.log(reply_idValue); console.log(如target); console.log(type of(e.target)); 控制台日志(“”); log(document.getElementById(“reply_delete”); log(typeof(document.getElementById(“reply_delete”)); if(e.target==document.getElementById(“reply_delete”)){ console.log(“工作!”); 如果(确认(“你确定吗?”){ replyService.remove(reply_id值、函数(结果){ 警报(结果); 展示名单(1); }) }否则{ console.log(“不工作!”); }
但问题是,(e.target==document.getElementById(“reply_delete”))返回false, 尽管console.log(e.target)和console.log(document.getElementById(“reply_delete”))返回相同的按钮元素(当然也返回相同的类型)


有人知道发生这种情况的原因以及如何解决吗?

看起来您使用相同的id创建了多个元素。不要这样做-id必须是唯一的。。我建议改用类:

<button class='basic_btn btn btn-primary reply_delete'>

然后您可以编写:
if(e.target.classList.contains('reply_delete')){…}

参考文献: