Javascript 带有php变量的Jquery切换不起作用

Javascript 带有php变量的Jquery切换不起作用,javascript,php,jquery,Javascript,Php,Jquery,我有这个切换功能,使列表项可见和不可见。 如果没有变量id,它当然只在第一个打开时工作。但对于变量,它根本不起作用。变量只是一个数字,添加到列表项id中,在html代码中可以很好地显示出来。 这是我的功能: <script src="https://ajax.googleapis.com/ajax/libs/jquery/1.12.4/jquery.min.js"></script> <script> $("#button-" . $row['id'] .

我有这个切换功能,使列表项可见和不可见。 如果没有变量id,它当然只在第一个打开时工作。但对于变量,它根本不起作用。变量只是一个数字,添加到列表项id中,在html代码中可以很好地显示出来。 这是我的功能:

  <script src="https://ajax.googleapis.com/ajax/libs/jquery/1.12.4/jquery.min.js"></script>
<script>
$("#button-" . $row['id'] . "").click(function() {
$("#bands-" . $row['id'] . "").toggle();
});
</script>
<?php
echo "<a id='button-" . $row['id'] . "'>bands</a>";

echo "<li id='bands-" . $row['id'] . "' class='clearfix list-group-item' style='display: none;'></li>";
?>

我知道,回显每一行有点难看,但它可以工作:-p

您在JS端转义的字符串是错误的,其余的应该可以工作。在php方面,这是正确的,因为您在一个echo字符串中


您应该为每一行生成JavaScript代码,只需编写一次,然后使用data id属性来查找相应的项

您的JavaScript应该如下所示:

在PHP代码中,将行id放在数据id属性中,而不是id属性中:

回波带; 回响
您是否可以显示足够的代码来指示$row的来源?您是否有当前未包含的while或foreach循环?您是否检查了生成的HTML代码(如果它看起来应该是这样的话)?是的,它在while$row=mysql\u fetch\u array$result中{。我确实在它周围放了一个。仍然不起作用,但是一个小错误消失了。Html很好。在一个项目中显示Id的按钮-30。在li项目中显示Id的按钮-30。当我更改它时,我看到脚本函数没有接受Id值。所以我把脚本放在while$row=mysql\u fetch\u array$result{现在它工作了!
$("#button-<?php echo $row['id']; ?>").click(function() {
    $("#bands-<?php echo $row['id']; ?>").toggle();
});
$(document).on("click", ".bands-button", function() {
    $("#bands-"+$(this).data("id")).toggle();
});