Javascript 更改按钮';当php在while循环中显示按钮时,使用js初始化 ` 你好 .test1{ 背景色:青色; 颜色:黑色; } 功能测试(){ $(“.btnT”).addClass(“test1”); } `

Javascript 更改按钮';当php在while循环中显示按钮时,使用js初始化 ` 你好 .test1{ 背景色:青色; 颜色:黑色; } 功能测试(){ $(“.btnT”).addClass(“test1”); } `,javascript,php,html,css,Javascript,Php,Html,Css,忽略if语句,我还没有在js中实现它 我使用php显示按钮,而不使用任何文本或类。一个类是通过使用php的if语句确定的,它们将保存一个隐藏的输入值,然后将该值推送到javascript,javascript将根据隐藏输入的值添加一个类,然后我尝试删除另一个类,并将其添加到while循环中仅显示的一个单独按钮中。我要么得到第一个按钮来获得更改,要么它更改了所有按钮,而不是我单击的单个按钮。请帮忙,谢谢 我最大的问题是如何使while循环中的每个按钮单独发生事件,而不是全部发生。我知道这是因为我有

忽略if语句,我还没有在js中实现它

我使用php显示按钮,而不使用任何文本或类。一个类是通过使用php的if语句确定的,它们将保存一个隐藏的输入值,然后将该值推送到javascript,javascript将根据隐藏输入的值添加一个类,然后我尝试删除另一个类,并将其添加到while循环中仅显示的一个单独按钮中。我要么得到第一个按钮来获得更改,要么它更改了所有按钮,而不是我单击的单个按钮。请帮忙,谢谢


我最大的问题是如何使while循环中的每个按钮单独发生事件,而不是全部发生。我知道这是因为我有代码向button类添加一个类,我尝试用id替换button类,但是那样的话,只有第一个按钮将添加新类,而不是其他按钮。希望每个按钮都有一个单独操作的解决方案

当您创建while循环时,您可以将$testcount附加到按钮ID的末尾,这样每个按钮都有自己的唯一ID,但仍然有一个可以在javascript中使用的“模板”名称

`<?php
$i = 0;
$testcount = 0;
while($testcount < 8) {
  if($i == 0) {
    ?>
    <input id="info" type="hidden" value="hi">
    <?php
  } else if ($ == 1) {
    ?>
    <input id="info" type="hidden" value="test">
    <?php
  }
  ?>
  <button onclick="test()" class="btnT">Hello</button>
  <?php
  $testcount++;
}
?>
<style>
  .test1 {
     background-color: cyan;
     color: black;
  }
</style>
<script type="text/javascript">
  function test () {
     $(".btnT").addClass("test1");
  }
</script>`

例如,单击按钮#2时,该按钮的ID应为“btn2”。单击按钮将把数字“2”作为参数发送给JS函数。变量myButton将通过btn的ID+您给它的数字来获取元素,以创建一个类似“btn2”的字符串,然后基于您现在知道按下了哪个按钮,并且您可以基于此运行操作。使用您的示例,您将类“test1”添加到该按钮。

如果您向我们展示了您的代码,那就太好了。如果我理解正确,您希望函数在每个按钮上单独运行吗?您可以在每个按钮的ID末尾附加$testcount,这样每个按钮都有一个唯一的ID。还可以将$testcount作为参数传递给JS函数,并使用相同的递增计数器在JS中运行while循环,以影响其余按钮。@dune184谢谢!,是的,这就是我想做的。我想我明白你的意思,这是否意味着我必须使用id而不是类?另外,如果我在每个按钮的末尾添加$testcount,那么这意味着,例如,id将是btn1、btn2、btn3…,但是在我想要获得$testcount的值之后,我不必使用document.getElementById吗?如果每个按钮都有一个唯一的id,那么如何获取$testcount的值?是的,您可以通过其id获取它,您可以通过将$testcount作为参数传递给在按钮上设置的onclick函数来实现这一点。通过将此参数传递给函数,您可以确定单击了哪个按钮,并根据该按钮采取行动,我会在这里写下答案,但我仍然不确定这是否正是您想要的yet@dune184是的,这就是我想做的。如果您能编写一个代码示例,我将不胜感激。非常感谢你!知道了!非常感谢你!
<?php
$i = 0;
$testcount = 0;
while($testcount < 8) {
  echo '<button id="btn'.$testcount.'" onclick="test('.$testcount.')" class="btnT">Hello</button>';
  $testcount++;
}
?>
function test(x) {
    var myButton = document.getElementById('btn' + x);
    myButton.classList.add("test1");
    // Any more JS logic you have
}