Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/415.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/jquery/76.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript Jquery函数在多个按钮上添加类和删除类,但仅执行单击的特定按钮_Javascript_Jquery - Fatal编程技术网

Javascript Jquery函数在多个按钮上添加类和删除类,但仅执行单击的特定按钮

Javascript Jquery函数在多个按钮上添加类和删除类,但仅执行单击的特定按钮,javascript,jquery,Javascript,Jquery,您好,我似乎被这个特定的代码卡住了。我的网站上有多个按钮,当你点击其中一个按钮时,它会改变类别&里面的文本会在再次点击后恢复。它似乎只对一个按钮起作用,但有多个按钮具有相同的ID&当它们被单击时,什么也不会发生。这里是代码输入代码 $('#btnInfo').click(function() { if ($(this).text() == "More Info") { $(this).text("Cancel").addClass('btn-danger'); }

您好,我似乎被这个特定的代码卡住了。我的网站上有多个按钮,当你点击其中一个按钮时,它会改变类别&里面的文本会在再次点击后恢复。它似乎只对一个按钮起作用,但有多个按钮具有相同的ID&当它们被单击时,什么也不会发生。这里是代码输入代码

$('#btnInfo').click(function() 
{ 
  if ($(this).text() == "More Info") 
  { 
     $(this).text("Cancel").addClass('btn-danger'); 
  } 
  else 
  { 
     $(this).text("More Info").removeClass('btn-danger'); 
  }; 
});

我不确定当我点击按钮时,只有一个按钮得到了这个功能,而其他按钮保持不变,但我希望所有按钮都能执行上面的代码,但仅限于我用ID专门点击的按钮。不清楚你到底在看什么 如果您正在为所有按钮寻找此功能,则需要类似的功能

$('button').click(function()  //see changed css selector
{ 
  if ($(this).text() == "More Info") 
  { 
     $(this).text("Cancel").addClass('btn-danger'); 
  } 
  else 
  { 
     $(this).text("More Info").removeClass('btn-danger'); 
  }; 
});

您的选择器是下一行中的id btnInfo

$('#btnInfo').click(function()

这将只选择一个按钮。使用class.btnInfo并将其作为class属性添加到按钮中首先,不能有多个具有相同ID的元素,因此请改用class。 我认为您想要的是将事件单击绑定到您的所有按钮,而不是这样做

$('.className').on('click', function(e){
    if ($(this).text() == "More Info") 
    { 
        $(this).text("Cancel").addClass('btn-danger'); 
    } 
    else 
    { 
        $(this).text("More Info").removeClass('btn-danger'); 
    }; 
});

查看链接了解更多信息:

将您的html添加到问题中。看起来您正在将此函数附加到一个Id,因此它只适用于Id为的按钮:btnInfo有多个Id为相同的按钮这不好不要使用Id为相同的按钮的多个-这违反html规范,选择器“btnInfo”将只返回找到的第一个元素。将这些按钮指定为同一类并按其搜索:'.buttonClass'-此类甚至不必存在。如果是多个按钮,则不应再将其作为ID,然后应为它们指定一个类。f、 ex class=btnInfo,要在javascript中引用它们,选择器是$'.btnInfo'why is.on befort.click在这种情况下?.onclick与相同。click不是更好,它是相同的,因为click是on'click'的快捷方式