范围('A','Z')jQuery问题

时间:2011-03-20 03:09:35

标签: php jquery range

我有一个PHP函数可以创建一个< li>每个字母都用。

<?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());
    });
})

2 个答案:

答案 0 :(得分:4)

您正在使用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());
    });
})

答案 1 :(得分:3)

因为每个<li>都有相同的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());
    });
})