将动态id添加到jquery选择器

时间:2017-01-26 15:08:55

标签: php jquery

我正在使用一个名为 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!有什么建议吗?

1 个答案:

答案 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));

这可以解决您的问题。