我正在使用一个名为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!有什么建议吗?
正如您所提到的,您的ID是一个数字。尽管HTML允许ID和类以数字开头,但选择器将无法正常工作。
因此,首先,您可以为您的类加前缀,这样它就不会以数字开头。这将使我们能够找到它,而不必对选择器进行任何疯狂的转义:
<button class="ladda-button myClass_<?=$id?>" data-color="green" data-style="expand-left" onclick="val('<?= $id?>','<?= $status2?>')">
现在我们的类是“可查找的”,我们可以修改querySelector
来正确地找到它:
var l = Ladda.create(document.querySelector(".myClass_"+id));
这应该可以解决您的问题。
本文收集自互联网,转载请注明来源。
如有侵权,请联系[email protected] 删除。
我来说两句