【问题标题】:jquery .click function onto a while loopjquery .click 函数进入while循环
【发布时间】:2016-04-21 06:53:11
【问题描述】:

下午好,

所以我有这个简单的循环,基本上我想在用户点击循环创建的任何行时创建一个事件。

这是我非常简单的 php while 循环:

<?php
$x = 1; 
while($x <= 5) {
    ?>
    <div id="number"><?php echo "$x <br>";?></div><?php
    $x++;
}
?>

这是我的 jquery:

<script src="https://ajax.googleapis.com/ajax/libs/jquery/1.11.3/jquery.min.js"></script>
<script>
$(document).ready(function(){
    $("#number").click(function(){
        alert("click");
    });
});
</script>

不幸的是,只有当我点击第一个数字时,警报才会自动激活。 是不是我做错了什么?

编辑:我觉得很笨,我应该用 class 代替,谢谢 Tushar

【问题讨论】:

  • ID 应该是唯一的,请改用 class。
  • 非常感谢,我觉得自己非常愚蠢
  • @Cancerbro,为什么下午好?对我来说,现在是清晨。 ;)。无论如何,是的,Tushar 是对的,把所有东西都放在同一个班级里。他们仍然可以有一个单独的 ID,但在这种情况下,您需要使用一个类。

标签: javascript php jquery html while-loop


【解决方案1】:
 <?php
$x = 1; 
while($x <= 5) {
    ?>
    <div class="number"><?php echo "$x <br>";?></div><?php
    $x++;
}
?>


$(document).ready(function(){
    $(".number").click(function(){
        alert("click");
    });
});


Id should be unique.So added class.

【讨论】:

    【解决方案2】:

    jQuery 选择器只会找到第一行,因为它们都获得相同的 id。使用可以使用的类选择器和 id 方案。例如:

    <?php
    for ( $x =0 ; $x < 5 ; $x++ ) {
        ?>
        <div id="number<?php echo $x ?>" class="myclass"><?php echo "$x <br>" ; ?></div><?
    }
    ?>
    

    现在你可以像这样选择:

    $("div[id^=number]").click (function () { alert ("click") ; }) ;
    

    $("div.myclass").click (function () { alert ("click") ; }) ;
    

    最后一个应该更快。

    【讨论】:

      猜你喜欢
      • 2020-08-11
      • 1970-01-01
      • 2013-04-01
      • 1970-01-01
      • 2015-03-08
      • 2012-08-26
      • 2021-03-26
      • 1970-01-01
      • 2021-12-03
      相关资源
      最近更新 更多