我正在使用一个名为 Ladda 的插件,它基本上是在点击按钮时添加一个加载器!我从数据库中填充一个表,并在每行的最后一列添加这些按钮!这是我的初始代码
<?php
$query="select client_id,fullname,email,status
from atom_users ORDER BY id DESC";
$stmt = $db->prepare($query);
if($stmt){
$stmt->execute();
$stmt->bind_result($id,$fullname,$email,$status);
while ($stmt->fetch())
{
?>
<tr>
<td><?= $id?></td>
<td><?= $fullname?></td>
<td><?= $email?></td>
<td><?= str_replace("-"," ",$status)?></td>
<?= ($status=="archive" ? $status2='Un-Archive' : $status2="Archive");?>
<td>
<button class="ladda-button <?=$id?>" data-color="green" data-style="expand-left" onclick="val('<?= $id?>','<?= $status2?>')">
<?= $status2?>
</button>
</td>
</tr>
<?php }
$stmt->close();
} ?>
我在这里做的只是输出数据相当简单,在这段代码中有按钮!现在,为了使每个按钮都是唯一的,我在每个按钮的类中添加了一个$id
变量,这样当点击按钮运行加载程序时,它会在按下的按钮上运行。现在这是功能:
function val(id,status){
alert(id);
alert(status);
//original line
//var l = Ladda.create( document.querySelector( '.button-demo #btn' ) );
//dynamic
var l = Ladda.create( document.querySelector( '."'.+id+.'"' ) );
l.start();
}
现在问题是直截了当的两行
var l = Ladda.create( document.querySelector( '."'.+id+.'"' ) );
l.start();
正在创建加载器现在我想将函数中收到的id添加到querySelector中以便它动态工作我已经尝试了很多但它不接受id!有什么建议吗?
答案 0 :(得分:1)
正如您所提到的,您的ID是一个数字。虽然HTML可以接受ID和类开头的数字,但选择器将无法正常运行。
因此,首先,您可以为您的班级添加前缀,使其不以数字开头。这将使我们能够找到它而无需与我们的选择器进行任何疯狂的逃避:
<button class="ladda-button myClass_<?=$id?>" data-color="green" data-style="expand-left" onclick="val('<?= $id?>','<?= $status2?>')">
现在我们的课程已经找到了#34;我们可以修改querySelector
来正确找到它:
var l = Ladda.create(document.querySelector(".myClass_"+id));
这可以解决您的问题。