动态按钮ID-Javascript

动态按钮ID-Javascript,javascript,loops,button,dynamic,Javascript,Loops,Button,Dynamic,我有许多从for循环生成的按钮,如下所示,id=like: <button type="submit" id = "like" class="btn btn-custom btn-sm like"><span id="tx-like">Like</span></button> 这只在第一个按钮上起作用,因为它带有id。如何使它在动态生成的所有按钮上起作用?如上面的评论所述,您不应该在同一页面中有多个id。 您可以改用类,但即使它可以工作,也有一种

我有许多从for循环生成的按钮,如下所示,id=like:

<button type="submit" id = "like" class="btn btn-custom btn-sm like"><span id="tx-like">Like</span></button>

这只在第一个按钮上起作用,因为它带有id。如何使它在动态生成的所有按钮上起作用?

如上面的评论所述,您不应该在同一页面中有多个id。 您可以改用类,但即使它可以工作,也有一种更好的方法,即使用
数据属性

//使用'data like'属性检索所有元素。
const likes=document.querySelectorAll(“[data like]”);
//对于每个元素,将其命名为`el`
likes.forEach(el=>{
el.addEventListener('单击',()=>{
//获取它的'data like'值。
const{like}=el.dataset;
//如果该值为“false”:
if(like=='false'){
el.innerText=‘不喜欢’;
el.dataset.like='true';
返回;
}
//否则。。。
el.innerText='Like';
el.dataset.like='false';
});
});
/*您可以根据元素的当前状态轻松自定义元素*/
.like[data like=“true”]{
边框:实心1px绿色;
}
.like[data like=“false”]{
边框:实心1px红色;
}

喜欢

Like
id是唯一的。您不能在元素之间共享id。是否有一种方法可以使这些id以数字形式递增,例如:按钮1 id类似于1,按钮2 id类似于2,等等。然后,JavaScript函数可以获取这些ID并完成工作?当然有。将您的号码添加到id中。但我建议改为使用class。我使用了class。一下子什么都不喜欢。效率不高。如何使用动态ID执行此操作?使用自定义类选择“全部”,并使用该选择列表对执行操作。无效。我知道这段代码确实是我想要的。我需要包括哪些图书馆?我没有。我尝试在我的应用程序中使用,但没有成功。我作为代码片段单独尝试了一个测试,但没有完成该功能。有什么建议吗?不看申请表我真的帮不上忙。试着一步一步地找出问题:是否加载了javascript?那么,
likes
constante是否返回结果?然后,是否触发了单击事件?等等,我在jsfiddle上试过了,效果很好。有什么建议吗?一旦我删除它,它就可以工作了,但我希望它能与ajax一起工作。有什么建议吗?
$( function() {
        $('#like').click( function() {
            var t = $("#tx-like").html();
            if(t == 'Like'){
                $("#tx-like").html("Unlike");
            }else{
                $("#tx-like").html("Like");
            }
        } );
    } );