Range('A','Z') jQuery 问题

发布于 2024-10-25 10:39:30 字数 428 浏览 2 评论 0原文

我有一个 PHP 函数可以创建一个 <力>与字母表中的每个字母。

<?php foreach(range('A','Z') as $letter) : ?>
<li><input type="button" id="alpha-button" value="<?php echo $letter; ?>"></li>
<?php endforeach; ?>

这会生成一个没有问题的列表。但是,当我尝试应用以下函数时,它仅在生成第一个按钮时运行。

$(function(){
    $("#alpha-button").click(function(){
        alert($(this).val());
    });
})

I've got a PHP function that creates a < li > with each letter of the alphabet.

<?php foreach(range('A','Z') as $letter) : ?>
<li><input type="button" id="alpha-button" value="<?php echo $letter; ?>"></li>
<?php endforeach; ?>

This generates a list with no problems. However, when I try to apply the following function, it only runs with the first button generated.

$(function(){
    $("#alpha-button").click(function(){
        alert($(this).val());
    });
})

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(2

神妖 2024-11-01 10:39:30

您正在使用 id 选择器,并且 id 在 DOM 中必须是唯一的。

您应该将其更改为使用 class 而不是 id,如下所示:

<?php foreach(range('A','Z') as $letter) : ?>
<li><input type="button" class="alpha-button" value="<?php echo $letter; ?>"></li>
<?php endforeach; ?>

JS:

$(function(){
    $(".alpha-button").click(function(){
        alert($(this).val());
    });
})

You are using an id selector, and ids need to be unique inside the DOM.

You should change it to use a class instead of an id, like this:

<?php foreach(range('A','Z') as $letter) : ?>
<li><input type="button" class="alpha-button" value="<?php echo $letter; ?>"></li>
<?php endforeach; ?>

And the JS:

$(function(){
    $(".alpha-button").click(function(){
        alert($(this).val());
    });
})
与风相奔跑 2024-11-01 10:39:30

因为每个

  • 都有相同的 id。
  • 您可以将其更改

    <?php foreach(range('A','Z') as $letter) : ?>
    <li><input type="button" class="alpha-button" value="<?php echo $letter; ?>"></li>
    <?php endforeach; ?>
    

    $(function(){
        $(".alpha-button").click(function(){
            alert($(this).val());
        });
    })
    

    Because you have the same id for each <li>.

    You may change it to

    <?php foreach(range('A','Z') as $letter) : ?>
    <li><input type="button" class="alpha-button" value="<?php echo $letter; ?>"></li>
    <?php endforeach; ?>
    

    and

    $(function(){
        $(".alpha-button").click(function(){
            alert($(this).val());
        });
    })
    
    ~没有更多了~
    我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
    原文