Javascript 如何使用jquery在for循环中禁用具有特定id的按钮

Javascript 如何使用jquery在for循环中禁用具有特定id的按钮,javascript,jquery,Javascript,Jquery,我正试图禁用一个带有特定id的按钮,但它不起作用 $('.likes-button').click(function(){ var el= this; var button1 = $(el).attr('id'); console.log(button1) $('#button1').attr("disabled",true); }); {%csrf_令牌%} {{product.stringlike}}{{product.voces\u total\u li

我正试图禁用一个带有特定id的按钮,但它不起作用

$('.likes-button').click(function(){
    var el= this;
    var button1 = $(el).attr('id');
    console.log(button1)
    $('#button1').attr("disabled",true);
});

{%csrf_令牌%}
{{product.stringlike}}{{product.voces\u total\u like}}
{{product.stringhaste}}{{product.voces\u total\u haste}}

console.log显示单击的按钮id=
button1-1
请写入
$(“#”+button1.attr(“已禁用”,true)
而不是
$('#button1').attr(“disabled”,true)

按钮中的id不相同

$('.likes-button').click( ()=> {
    $(this).attr("disabled",true);
});
id="button1-{{ forloop.counter }}" 
您可以尝试
$('[id^=“button1”]')。attr(“disabled”,true)在jquery选择器中,但函数实际上没有多大意义。如果您在likes按钮中已经有一个独特的类,您可以这样做

$('.likes-button').click(function() {
  $(this).prop("disabled", true);
});
或者只是

$('.likes-button').click(function(e) {
  $(e.target).prop("disabled", true);
});
没有jQuery

document.querySelector(".likes-button").addEventListener("click", function(e) {
  e.target.setAttribute("disabled", true);
});

你可以这样做

 $('.likes-button').click(function(){
            var button1 = "#"+ $(this).attr('id');
            $($button1).prop('disabled',true).css('opacity',0.5);
 });

为什么锚上有一个按钮?这是无效的HTML。旁注
$(el.attr('id')
应该是
this.id
el.id
。在jQuery中包装元素以获取属性没有任何好处,因为属性已经在元素上公开了。您使用
e.target
,它是对元素的引用,然后您使用它的id来查找它。要查找元素,您已经有了对的引用。我不明白e.target.id???
e.target
是事件起源的元素。请在您的答案中包含一些解释。很好,但是如果我有两个按钮“喜欢”和“不喜欢”,该怎么办,如何从第一个按钮“喜欢”按钮访问第二个按钮“不喜欢”按钮??如果您想在单击“喜欢”按钮时访问“不喜欢”按钮,可以在事件侦听器中查询它
$('.likes按钮')。单击(function(){console.log($('.dis喜欢按钮')))不确定我是否理解。这是一个例子。这不是您需要的吗?部分代码有错误,同级函数接受选择器,您在传递
不喜欢按钮时没有
。在某些定义中,您也没有查询正确的
likes按钮
类。如果单击了其中一个按钮,您似乎希望禁用这两个按钮中的一个,对吗?如果是这样的话,请检查这个。就像您通常会做的那样,只需在监听器内部执行deajax调用。如果希望在ajax成功时禁用另一个按钮,请在回调中执行。
 $('.likes-button').click(function(){
            var button1 = "#"+ $(this).attr('id');
            $($button1).prop('disabled',true).css('opacity',0.5);
 });